perm filename DSKDMP.LST[SS,SYS] blob
sn#854963 filedate 1988-03-23 generic text, type T, neo UTF8
FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 1
.MAIN
1 COMMENT ⊗ VALID 00021 PAGES
2 C REC PAGE DESCRIPTION
3 C00001 00001
4 C00006 00002 TYPXFR DEBSW DSKDSW EXTNEW CSAVE KLBOOT DSKDBG RHDSK FT1DSK KA
CODE NPACKS EXTNEW F A B C D E H J K L M P1 P2 P3 P4 T1 T2 T3 N T TT P HILOC NUFDWD RBO CUADR APR PI KLPAG CCA
TTY C1A C1B DTE0 DTFLG DTF11 DTCMD DONG11 SWEEPB PIOFF DSTART DSTART CSVFIL KLEPT A%FP0 KLEPT R2WLSH RECSIZ RTL
SIZ DATRPB RTLSIZ DATRPB WDPCHN DATSIZ BLKSIZ
5 C00015 00003 PTPC PTR PNCHGO GO1 GO2 PUNCHC PUNCH RIMLDR RIMLDL RIMPDL OBUF
BOOTLO BOOTBG BOOTBG XBUF XBUF BOOTBG BOOTBG XBUF NDATA BDATA KLEPT A%FP0
6 C00021 00004 C1SBI C1RSI C1SRUN C1CONT C1SCH C1RST C1CCIF C1INTE C1INTD C1S
CF1 C1CCF1 C1MPCN C1LCD C1LPT C1SYSR C1SCAN C1SDIA CIF CF1 CF2 C1UCHK
7 C00026 00005 C1CMD C1MRT C1JMP C1TIO C1IWC C1BAK C1NATM C1BYTM C1CBYT C1SLE
C1CEC C1NOC C1RPT C1CCW C1ISW C1PTPE C1PTNX C1IQF C1PPTR C1PCW C1BW C1STA C1HLT C1LE C1SE C1PE C1NXM C1BPE C1S
SE C1PCMA C1STB C1STC C1INST
8 C00032 00006 MFDLOC TRKCYL CYLPK TRKPK NXTQQQ A NXTQQQ NXTQQQ DPTRBP DPTEBP
DPTRBP DPTEBP
9 C00037 00007 DSKDMP.DMP FORMAT
10 C00041 00008 LOWEST BOOT BOOT1 BOOTL1 BOOTL2 BOOTL3 NOMFD NODSKD NOSYS
11 C00049 00009 LOWEST DSKDMP DSKDM0 DSKDM1 DSKDM2 DSKDL DSKDL2 DSKDL1 DSKDRO
DSKDAL DSKAL1 QQQ DSKDGO CMDS NCMDS CMDDSP SSTRTA SSTRT1 SSTRT2 START LOADGO NOMUCK MERGE LOAD LOADN LOADIT LDI
T0 LDIT0A LDIT1 LDIT3 LDIT4 LDIT2 LDLP LDLP1 LDLP3 FILES DUMP KILL NSA FNF
12 C00065 00010 FILSET FILSE0 FILSE1 FILSIX FILSI1 RADJ RADJ1
13 C00070 00011 SRCH SRCH1 SRCH2 SRCH3 SRCHLP SRCH5 SRCH4 RDRET READ READ0 REA
DC1 C1WAIT C1WAIA C1WAIB C1WERR C1DIE C1MPIL C1MPI1 C1SET BLAST RSTC1
14 C00081 00012 TYPE TYPE1 TYO CPOPJ1 CPOPJ DTEXX KLTYO KLTYI TYI KLTYI1 POPCJ
TYICAN FILTYP PPNTYP TYPSIX TYPSI1 TWAIT OCTTYP OCTTY1
15 C00088 00013 C1ZERO C1APT C1BPT C1PH C1ZEND C1FRST C1ERR C1PTP C1PPTP C1CIF
I ZZZ C1MRTC C1CCHR C1MRTD C1WCHN RCLTAB XBUF LPDL LPDL PDL ERRCNT RECORD NXTTRK SYMPNT SYSLOC PATCH PATCH1 LOD
CNT LODNXT XFRCNT STARTA KASIM MUCKFL ZERFLG FHILOC UPPRST TIBFLN TIBUF FNAM FEXT FPPN DEFDEV DEFEXT DEFPPN FDE
V
16 C00096 00014 FDZBEG DIORG ICCW RH2CYL MAXUNI DSKTYP NUMCYL NUMSCL NUMSTK ST
RNAM RMXDRV DSKTAB FDZEND NDSKOP NDSKLZ RMXDRV PAGSIZ HOMNAM HOMSNM HOMLUN HOMHOM HOMRXB HOMSIZ HOMFSN HOMCOD H
OMSLF CODHOM ICA ENTFLG MAXCHN MAXDRV RH0 .RHRAE .RHMBR .RHCTE .RHMBE .RHSTP .RHDON RHERR LR R4%CSR R4%CRC R4%R
IP R4%CPA R4%CRD R4%DSR .RPERR .RPMOL .RPDRY R4%ATN R4%DST R4%DTR R4%TYP R4%DC .RHSBR .RHSTR RCLP STLW R4%TYP .
R4TYP .R5TYP .R6TYP .R7TY2 .R7TY1 .R3TYP RHERR NRETRY TIMOUT R4%CRC R4%CDC R4%RIP R4%CPA R4%CRD N.SCL3 N.SCL4 N
.SCL7 N.CLP3 N.CLP4 N.CLP6 N.CLP7 N.CLP6 N.CLP7 N.STK3 N.STK7 N.STK4 N.BKPG
17 C00108 00015 BLAST FDSK FDSK1 FDSK2 FDSK2A FDSK3 FDSK4 CHKSTR MISSTR MISUN2
MISUNI
18 C00115 00016 GOTDRV GOTDV3 GOTDV4 GOTDV0 GOTDV2
19 C00122 00017 RHREAD RHWRIT RHCONI RHCONO XIO1 RDDISK RD11 RD0 RD00 RD0A DOO
P1 TYPGOO DOOP2 TYPFOO
20 C00132 00018 CHKHOM CHKHO2 BADUNI DPLUNI BADSTR BADUN2
21 C00136 00019 FF
22 C00137 00020 CSVNAM CSVLEN CS MKCSAV NODSK NOENT NOOUT
23 C00140 00021 END
24 C00141 ENDMK
25 C⊗;
26
FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 2
.MAIN
27 ;⊗ TYPXFR DEBSW DSKDSW EXTNEW CSAVE KLBOOT DSKDBG RHDSK FT1DSK KACODE NPACKS EX
TNEW F A B C D E H J K L M P1 P2 P3 P4 T1 T2 T3 N T TT P HILOC NUFDWD RBO CUADR APR PI KLPAG CCA TTY C1A C1B DT
E0 DTFLG DTF11 DTCMD DONG11 SWEEPB PIOFF DSTART DSTART CSVFIL KLEPT A%FP0 KLEPT R2WLSH RECSIZ RTLSIZ DATRPB RTL
SIZ DATRPB WDPCHN DATSIZ BLKSIZ
28
29 ;ASSEMBLY SWITCHES, TITLE AND AC DEFINITIONS
30
31 ;"BOOT" means the program that's loaded into 11 memory that runs in response to
32 ;the DS command in KLDCP.
33 ;
34 ;"DSKDMP" means the program that's run by BOOT. It generally has DDT and a
35 ;file name scanner, etc.
36 ;
37 ;"CSAVE" is a file format generated by doing a REENTER into a DSKDMP core image
38 ;from a WAITS job. The CSAVE file is converted to an 11-format file and put
39 ;on the front-end 11's file system. From there it is loaded and started
40 ;by the 11 to boot the system. CSAVE is hence a copy of DSKDMP run by the 11
41 ;(on the 10) for booting.
42
43 ;Switches for debugging.
44 000000 000000 TYPXFR←←0 ;Nonzero to type out a character for each disk xfer done OK
45 000000 000000 DEBSW←←0 ;If BOOT, 0 for paper tape, 1 for DECtape with EDDT
46 ;If DSKDMP, 0 for real DSKDMP, 1 for DSKDMP with EDDT
47
48 ;Switches actually used to select compilation results.
49 000000 000001 DSKDSW←←1 ;0 for BOOT, 1 for DSKDMP
50 000000 000003 EXTNEW←←3 ;If BOOT, 0 finds DSKDMP.DMP, 1 finds .NEW, 2 .OLD, 3 .TST
51
52 ;Switches that are rarely changed.
53 000000 000001 CSAVE←←1 ;1 to include code at REENTER command to generate CSAVE boot fi
le
54 000000 000001 KLBOOT←←1 ;If BOOT, 1 for KLDCP loadable BOOT, 0 for paper tape
55 000000 000001 DSKDBG←←1 ;1 for being able to load DSKDMP with EDDT, fixes symb tab ptr
56 000000 000001 RHDSK←←1 ;1 for RH20 disks, 0 for C1 channel disks
57 000000 000001 FT1DSK←←1 ;1 if all C1 disk packs are on same controller (not RHDSK)
58 000000 000000 KACODE←←0 ;1 to include run time checks for KA-10 and KASIM microcode
59
60 000000 000010 NPACKS←←8 ;number of disk drives on C1 channel
61
62 XALL ;suppress macro expansion in listing
63
64 DEFINE SWLIST <FOR SWITCH IN (CSAVE,TYPXFR,DEBSW,DSKDSW,DSKDBG,KLBOOT,RHDSK,FT1
DSK,EXTNEW)>
65
66 DEFINE VALPNT (VAL) <
67 PRINTS /VAL/
68 >
69 PRINTS /SWITCHES ARE:
70 /
71
72 SWLIST <
FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 2-2
.MAIN
73 PRINTS /SWITCH(/
74 VALPNT (\SWITCH)
75 PRINTS /) /
76 >
77
78 PRINTS /
79 /
80
81 repeat 0,<
82 PRINTS /Type new values for these symbols, if any, followed by CONTROL-META-LF
83 /
84 .INSERT TTY:
85 >;repeat 0
86
87 SWLIST <
88 IFDIF <SWITCH><EXTNEW><
89 IFN SWITCH,<↓SWITCH←←1>
90 IFE SWITCH,<↓SWITCH←←0>
91 >;IFDIF
000000 000001
000000 000000
000000 000000
000000 000001
000000 000001
000000 000001
000000 000001
92 000000 000001 >;SWLIST
93 IFL EXTNEW,<.FATAL EXTNEW has illegal value, must be 0, 1, 2 or 3.>
94 IFG EXTNEW-3,<.FATAL EXTNEW has illegal value, must be 0, 1, 2 or 3.>
95 000000 000003 ↓EXTNEW←←EXTNEW
96
97 000000 000000 IFN DSKDSW,<KLBOOT←←0>
98 IFN KLBOOT,<
99 DEBSW ←← 0
100 DSKDBG ←← 0
101 CSAVE ←← 1
102 >;IFN KLBOOT
103
104 IFN DSKDSW,<
105 TITLE DSKDMP
106 >;IFN DSKDSW
107
108 IFE DSKDSW,<
109 IFE EXTNEW,< TITLE BOOT >
110 IFE EXTNEW-3,< TITLE TBOOT >
111 IFE EXTNEW-2,< TITLE OBOOT >
112 IFE EXTNEW-1,< TITLE NBOOT >
113 >;IFE DSKDSW
114
115 000000 000000 F←0
116 000000 000001 A←1
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 2-3
DSKDMP
117 000000 000002 B←2
118 000000 000003 C←3
119 000000 000004 D←4
120 repeat 0,< ;unused
121 E←5
122 H←7
123 J←10
124 K←11
125 L←12
126 M←13
127 >;repeat 0
128 ifn rhdsk,<
129 000000 000005 P1←5
130 000000 000006 P2←6
131 000000 000007 P3←7
132 000000 000010 P4←10
133 000000 000011 T1←11
134 000000 000012 T2←12
135 000000 000013 T3←13
136 >;ifn rhdsk
137 000000 000014 N←14
138 000000 000015 T←15
139 000000 000016 TT←16
140 000000 000017 P←17
141
142 000000 000135 HILOC←←135
143
144 000000 000020 NUFDWD←←20
145
146 IFN DSKDSW,<
147 ;RIGHT HALF F BITS
148 000000 000001 RBO←←1 ;DOING RUBOUT NOW
149 >;IFN DSKDSW
150
151 IFE RHDSK,<
152 ↓CUADR←←6 ;CONTROL UNIT ADDRESS
153 >;IFE RHDSK
154
155 ;Device codes
156 000000 000000 APR←←0
157 000000 000004 PI←←4
158 000000 000010 KLPAG←←10
159 000000 000014 CCA←←14
160 000000 000120 TTY←←120
161 IFE RHDSK,<
162 C1A←←140
163 C1B←←144
164 >;IFE RHDSK
165 000000 000200 DTE0←←200
166
167 ;KL10 PARAMETERS, offsets within EPT
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 2-4
DSKDMP
168 000000 000444 DTFLG←←444 ;DTE20 OPERATION COMPLETE FLAG
169 000000 000450 DTF11←←450 ; FROM 11 ARGUMENT
170 000000 000451 DTCMD←←451 ; TO 11 COMMAND
171
172 IFN KACODE,<
173 DEFINE SKPKA <CONSO TTY,1B28> ;SKIP IF THIS IS THE KA10
174 DEFINE SKPKL <CONSZ TTY,1B28> ;SKIP IF THIS IS THE KL10
175 >;IFN KACODE
176 IFE KACODE,<
177 ;DEFINE SKPKA <CAI> ;SKIP IF THIS IS THE KA10 (never)
178 ;DEFINE SKPKL <CAIA> ;SKIP IF THIS IS THE KL10 (always)
179 >;IFE KACODE
180
181 000000 020000 DONG11←←20000 ;DTE CONO BIT. REQUEST 11 INTERRUPT
182 000000 200000 SWEEPB←←200000 ;KL10 APR CONI BIT - SWEEP BUSY
183 000000 000400 PIOFF←←400
184
185 IFN DEBSW,<
186 LOC 74
187 JRST DDT↑
188 IFN DSKDSW,<
189 LOC 140
190 274
191 FF
192 LOWEST
193 >;IFN DSKDSW
194 LOC 300
195 JRST DDT
196 IFE DSKDSW,<
197 JRST BOOT
198 LOC 100000
199 >;IFE DSKDSW
200 IFN DSKDSW,<
201 JRST DSKDMP
202 LOC 500000 ;arbitrary I think, used to be 300000
203 >;IFN DSKDSW
204 DSTART::
205 >;IFN DEBSW
206
207 IFE DEBSW,<
208 IFN DSKDSW,<
209 000000 760000 DSTART←←760000 ;address where DSKDMP code will start
210 IFN CSAVE,<
211 LOC 124 ;REENTER command will generate a CSAVE boot file
212 000124 000000 000000 MKCSAV ; which can be put in front-end's file system
213 >;IFN CSAVE
214 LOC 140
215 000140 000000 760000 DSTART ;LOCATION FOR LOADING STARTING AT 274
216 000141 000000 000000 FF ;FIRST FREE
217 000142 000000 000000 LOWEST ;LOWEST LOCATION USED
218 IFN CSAVE,<
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 2-5
DSKDMP
219 LOC 273
220 000273 000000 757777 CSVFIL: IOWD CSVLEN,DSTART ;for 11 boot: nbr of words to load, where to start l
oading
221 >;IFN CSAVE
222 LOC 274
223 PHASE DSTART
224 >;IFN DSKDSW
225 >;IFE DEBSW
226
227 IFN RHDSK,<
228 IFE KLBOOT,<
229 000000 756000 KLEPT←<DSTART-2000>&777000 ;the KL EPT will be in the 2nd previous page
230 000000 757000 A%FP0←<DSTART-1000>&777000 ;and special disk buffer will follow KLEPT
231 >;IFE KLBOOT
232 >;IFN RHDSK
233 IFE RHDSK,<
234 KLEPT←←0
235 >;IFE RHDSK
236
237 000000 000007 R2WLSH←←7 ;amount to shift record count to make word count
238 000000 000200 RECSIZ←←<1⊗R2WLSH> ;size of a data record, in words
239 IFE RHDSK,<
240 RTLSIZ←←40 ;size of retrieval disk sector in words
241 DATRPB←←=18 ;data records per block
242 >;IFE RHDSK
243 IFN RHDSK,<
244 000000 000200 RTLSIZ←←200 ;size of retrieval disk sector in words
245 000000 000010 DATRPB←←=8 ;data records per block on RP07 (should get this from h
ome blk)
246 000000 000004 WDPCHN←←4 ;number of words in logout area of a single RH20 channe
l
247 >;IFN RHDSK
248 000000 002000 DATSIZ←←DATRPB*RECSIZ ;size of disk block, not counting retrieval area
249 000000 002200 BLKSIZ←←DATSIZ+RTLSIZ ;size of disk block in words, incl retrieval area
250
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 3
DSKDMP
251 ;⊗ PTPC PTR PNCHGO GO1 GO2 PUNCHC PUNCH RIMLDR RIMLDL RIMPDL OBUF BOOTLO BOOTBG
BOOTBG XBUF XBUF BOOTBG BOOTBG XBUF NDATA BDATA KLEPT A%FP0
252
253 ;WRITE OUT RIM FORMAT BOOT, PNCHGO
254
255 IFE DSKDSW,<
256 IFE KLBOOT,<
257 IFE DEBSW,<
258
259 PTPC←←1
260 PTR←←104
261
262 LOC 200
263
264 PNCHGO: RESET
265 MOVE P,[-20,,RIMPDL]
266 INIT PTPC,13
267 SIXBIT /PTP/
268 OBUF,,
269 JRST 4,.
270 MOVSI C,-RIMLDL
271 GO1: MOVE A,RIMLDR(C)
272 PUSHJ P,PUNCH
273 AOBJN C,GO1
274 MOVEI D,0 ;INITIALIZE CHECKSUM
275 MOVE A,[BOOTBG,,BOOTBG]
276 PUSHJ P,PUNCHC
277 MOVSI C,BOOTBG
278 GO2: MOVE A,BOOTLO(C)
279 PUSHJ P,PUNCHC ;PUNCH AND CHECKSUM
280 AOBJN C,GO2
281 MOVE A,D
282 PUSHJ P,PUNCH ;PUNCH OUT CHECKSUM
283 MOVE A,[JRST BOOT]
284 PUSHJ P,PUNCH
285 MOVEI A,0
286 PUSHJ P,PUNCH
287 EXIT
288
289 PUNCHC: ROT D,1
290 ADD D,A
291 PUNCH: SOSG OBUF+2
292 OUT PTPC,
293 CAIA
294 JRST 4,.
295 IDPB A,OBUF+1
296 POPJ P,
297
298 RIMLDR: -17,,0 ;IOWD TO RIM LOADER
299 CONO PTR,60
300 HRRI 11,4
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 3-2
DSKDMP
301 CONSO PTR,10
302 JRST 3
303 ROT 0,-2(11)
304 DATAI PTR,@10(11)
305 XCT 10(11)
306 XCT 13(11)
307 SOJA 11,0
308 CAME 0,17
309 ADD 0,(17)
310 SKIPL 17,0
311 JRST 4,1
312 AOBJN 17,3
313 JRST 2
314 RIMLDL←←.-RIMLDR
315
316 RIMPDL: BLOCK 20
317 OBUF: BLOCK 3
318
319 LIT
320 VAR
321
322 LOC 1000
323
324 BOOTLO:
325 IFE RHDSK,<
326 BOOTBG←←777000
327 >;IFE RHDSK
328 IFN RHDSK,<
329 BOOTBG←←775000 ;need more room for RH version
330 >;IFN RHDSK
331 PHASE BOOTBG
332 XBUF←←BOOTBG-BLKSIZ
333 >;IFE DEBSW
334 >;IFE KLBOOT
335 >;IFE DSKDSW
336
337 IFN DEBSW,<
338 IFE DSKDSW,<
339 XBUF: BLOCK BLKSIZ
340 >;IFE DSKDSW
341 >;IFN DEBSW
342
343 IFN KLBOOT,<
344 IFE DEBSW,<
345 IFE RHDSK,<
346 BOOTBG←←777000 ;CHANGE TO 777000 WHEN SOME MEMORY IS UP THERE
347 >;IFE RHDSK
348 IFN RHDSK,<
349 BOOTBG←←775000 ;need more room for RH version (allow room for symbols)
350 >;IFN RHDSK
351 LOC 140
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 3-3
DSKDMP
352 BOOTBG
353 FF
354 LOWEST
355 LOC 274
356 PHASE BOOTBG
357 XBUF←←BOOTBG-BLKSIZ
358 >;IFE DEBSW
359 IFN RHDSK,<
360 NDATA←←100 ;max number of data words outside code loaded in KLDCP
361 BDATA←←XBUF-NDATA ;place where data area starts
362 KLEPT←<XBUF-NDATA-2000>&777000 ;the KL EPT will be in the 2nd page preceding XB
UF
363 A%FP0←<XBUF-NDATA-1000>&777000 ;and special disk buffer will follow KLEPT
364 >;IFN RHDSK
365
366 .DATA←←BDATA ;initialize address to beginning of data area
367 DEFINE DATAWD(SYM,LEN)<
368 SYM←.DATA
369 .DATA←←.DATA+LEN ;allocate LEN words at SYM
370 IFG .DATA-BDATA-NDATA,<.FATAL Increase NDATA (data area size) and recompile>
371 >;DEFINE
372 >;IFN KLBOOT
373
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 4
DSKDMP
374 ;⊗ C1SBI C1RSI C1SRUN C1CONT C1SCH C1RST C1CCIF C1INTE C1INTD C1SCF1 C1CCF1 C1M
PCN C1LCD C1LPT C1SYSR C1SCAN C1SDIA CIF CF1 CF2 C1UCHK
375
376 ;C1 CHANNEL DEFINITIONS
377
378 IFE RHDSK,<
379
380 ;CONO C1A BITS
381
382 C1SBI←←400000 ;SELECT BUS INTERFACE
383 C1RSI←←40000 ;RESET INTERFACE
384 C1SRUN←←10000 ;SET CLOCK RUN
385 C1CONT←←2000 ;CONTINUE CLOCK
386 C1SCH←←200000 ;SELECT CHANNEL
387 C1RST←←40000 ;RESET CHANNEL
388 C1CCIF←←20000 ;CLEAR CHANNEL INTERRUPT FLAG
389 C1INTE←←10000 ;INTERRUPT ENABLE
390 C1INTD←←4000 ;INTERRUPT DISABLE
391 C1SCF1←←2000 ;SET CF1
392 C1CCF1←←1000 ;CLEAR CF1
393 C1MPCN←←400 ;CONTINUE MICROPROCESSOR
394 C1LCD←←20 ;LOAD CODE FROM BITS 32-35
395 ;BITS 32-35 ARE A CODE, BIT 32 IS OFF FOR "SOFTWARE" CODES:
396 C1LPT←←11 ;LOAD PROGRAM TABLE STARTING ADDRESS
397 C1SYSR←←2 ;SYSTEM RESET
398 C1SCAN←←7 ;SCAN PROGRAM TABLE FOR PROGRAMS TO START
399
400 C1SDIA←←100000 ;SELECT DIAGNOSTIC FUNCTIONS
401
402 ;CONI C1A BITS
403
404 CIF←←4 ;CHANNEL INTERRUPT FLAG
405 CF1←←2 ;CHANNEL FLAG 1 (INTERRUPT THE Z80, SET FROM ICH IN CON
O)
406 CF2←←1 ;CHANNEL FLAG 2 (Z80 READY FOR PROGRAM TABLE ADDRESS)
407
408 C1UCHK←←2 ;UNIT CHECK IN IBM STATUS BYTE
409
410 >;IFE RHDSK
411
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 5
DSKDMP
412 ;⊗ C1CMD C1MRT C1JMP C1TIO C1IWC C1BAK C1NATM C1BYTM C1CBYT C1SLE C1CEC C1NOC C
1RPT C1CCW C1ISW C1PTPE C1PTNX C1IQF C1PPTR C1PCW C1BW C1STA C1HLT C1LE C1SE C1PE C1NXM C1BPE C1SSE C1PCMA C1ST
B C1STC C1INST
413
414 ;C1 CHANNEL DATA AREA PARAMETERS
415
416 IFE RHDSK,<
417
418 ;CHANNEL PROGRAM DEFINITIONS
419 ;LEFT HALF BITS
420 C1CMD←←100000 ;BITS 0-3 = 10 MEANS (NON-MRT) COMMAND WORD
421 C1MRT←←040000 ;BITS 0-3 = 04 MEANS MRT COMMAND WORD
422 C1JMP←←200000 ;BITS 0-3 = 20 MEANS JUMP COMMAND WORD
423 C1TIO←←020000 ;TEST I/O
424 C1IWC←←010000 ;IGNORE WORD COUNT
425 C1BAK←←004000 ;BACKWARDS
426 C1NATM←←000000 ;NATURAL MODE (MODE IN BITS 7-8)
427 C1BYTM←←001000 ;BYTE MODE
428 C1CBYT←←000400 ;COUNT BYTES
429 ;BITS 10-17 ARE THE IBM COMMAND BYTE
430 ;RIGHT HALF BITS
431 C1SLE←←20 ;STOP ON LENGTH ERROR
432 C1CEC←←10 ;CHANNEL END CONTINUE
433 C1NOC←←2 ;NO CHAINING
434 C1RPT←←1 ;REPEAT UNTIL STATUS MODIFIER IS ON IN ENDING S
TATUS
435
436
437
438
439 ;PROGRAM TABLE
440 C1CCW←←0 ;RELATIVE ADDRESS OF CHANNEL CONTROL WORD
441 C1ISW←←1 ;INTERRUPT SOURCE WORD
442 C1PTPE←←100000 ;PARITY ERROR IN PROGRAM TABLE
443 C1PTNX←←40000 ;NXM IN PROGRAM TABLE
444 C1IQF←←20000 ;INTERRUPT QUEUE FULL
445 C1PPTR←←2 ;FIRST PROGRAM POINTER
446
447 ;PROGRAM HEADER AND PROGRAM
448 C1PCW←←0 ;RELATIVE ADDRESS OF PROGRAM CONTROL WORD
449 C1BW←←100 ;BUSY WAIT BIT IN PCW
450 C1STA←←1 ;STATUS A
451 ;RIGHT HALF BITS
452 C1HLT←←400000 ;PROGRAM EXECUTED A HALT
453 C1LE←←200000 ;LENGTH ERROR
454 C1SE←←100000 ;SELECT ERROR
455 C1PE←←040000 ;PARITY ERROR
456 C1NXM←←020000 ;NXM
457 C1BPE←←010000 ;IBM BUS PARITY ERROR
458 C1SSE←←002000 ;SIGNAL SEQUENCE ERROR
459 ;LEFT HALF BITS
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 5-2
DSKDMP
460 C1PCMA←←100000 ;1→ERROR POINTER TO BY PC, 0→POINTED TO BY MA
461 C1STB←←2 ;STATUS B
462 C1STC←←3 ;STATUS C
463 C1INST←←4 ;FIRST INSTRUCTION OF CHANNEL PROGRAM
464 >;IFE RHDSK
465
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 6
DSKDMP
466 ;⊗ MFDLOC TRKCYL CYLPK TRKPK NXTQQQ A NXTQQQ NXTQQQ DPTRBP DPTEBP DPTRBP DPTEBP
467
468 ;FILE SYSTEM PARAMETERS
469
470 IFE RHDSK,<
471 MFDLOC←←1 ;TRACK CONTAINING MFD
472
473 TRKCYL←←=19 ;19 HEADS PER CYLINDER
474 CYLPK←←=815 ;815 CYLINDERS PER PACK
475 TRKPK←←TRKCYL*CYLPK ;19*815=15485 TRACKS PER PACK
476 >;IFE RHDSK
477
478 ;RETRIEVAL INFORMATION
479
480 000000 000000 NXTQQQ←←0
481
482 DEFINE ZWD (A) <
483 A←←NXTQQQ
484 NXTQQQ←←NXTQQQ+1
485 >
486
000000 000000
487 000000 000001 ZWD DDNAM ;FILE NAME
000000 000001
488 000000 000002 ZWD DDEXT ;FILE EXTENSION,,DATE WRITTEN,CREATION DATE
000000 000002
489 000000 000003 ZWD DDPRO ;PROTECTION,MODE,TIME,DATE WRITTEN
000000 000003
490 000000 000004 ZWD DDPPN ;PPN
000000 000004
491 000000 000005 ZWD DDLOC ;FIRST DISK ADDRESS OF THIS FILE
000000 000005
492 000000 000006 ZWD DDLNG ;LENGTH OF FILE IN WORDS
000000 000006
493 000000 000007 ZWD DREFTM
000000 000007
494 000000 000010 ZWD DDMPTM
000000 000010
495 000000 000011 ZWD DGRP1R ;FIRST USER RCRD NO. THIS GRP
000000 000011
496 000000 000012 ZWD DNXTGP ;BLOCK NUMBER OF NEXT GROUP
000000 000012
497 000000 000013 ZWD DSATID
000000 000013
498 000000 000014 ZWD DQINFO ;START OF SPECIAL STORAGE FOR LOGIN ETC.
499 000000 000017 NXTQQQ←←NXTQQQ+3
000000 000017
500 000000 000020 ZWD DOFFST ;RECORD OFFSET
000000 000020
501 000000 000021 ZWD DPTR ;RETRIEVAL DATA, 2 BLK NO.'S/WORD
502
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 6-2
DSKDMP
503 IFE RHDSK,<
504 DPTRBP←←<POINT 18,DPTR> ;C1 disk format uses half-word retr ptrs
505 DPTEBP←←<POINT 18,RTLSIZ-1,35> ;byte ptr to last retr ptr
506 >;IFE RHDSK
507 IFN RHDSK,<
000274 444400 000020
508 444400 000020 DPTRBP←←<POINT 36,DPTR> ;RH format uses full-word retr ptrs
000274 004400 000177
509 004400 000177 DPTEBP←←<POINT 36,RTLSIZ-1,35> ;byte ptr to last retr ptr
510 >;IFN RHDSK
511
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 7
DSKDMP
512 ;DSKDMP.DMP FORMAT
513
514 COMMENT ⊗
515
516 DSKDMP.DMP[SS,SYS] IS AN ORDINARY DUMP FILE EXCEPT THAT IT HAS BEEN
517 ASSEMBLED WITH A PHASE STATEMENT AND EXPECTS TO BE LOADED HIGH IN
518 THE FIRST 256K OF CORE. LOCATION 140 OF THE CORE IMAGE THAT WOULD
519 HAVE BEEN OBTAINED BY LOADING DSKDMP CONTAINS THE STARTING ADDRESS
520 FOR LOADING. LOCATION 274 IS THE FIRST WORD THAT SHOULD BE LOADED
521 THERE. LOCATION 141 CONTAINS THE RELOCATED FIRST FREE ADDRESS, 142
522 CONTAINS THE RELOCATED LOWEST ADDRESS. THESE TWO LOCATIONS ARE USED
523 ONLY BY THE CNVRT PROGRAM TO MAKE DSKDMP.D10
524
525 ⊗
526
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 8
DSKDMP
527 ;⊗ LOWEST BOOT BOOT1 BOOTL1 BOOTL2 BOOTL3 NOMFD NODSKD NOSYS
528
529 ;BOOT BEGINS HERE
530
531 IFE DSKDSW,<
532 LOWEST←←.
533 BOOT: CONO APR,200000 ;RESET
534 SETZM KASIM
535 IFN RHDSK,<
536 CONO KLPAG,KLEPT⊗-9 ;TURN OFF CACHE. set EPT address. TURN OFF MA
P
537 >;IFN RHDSK
538 IFN KACODE,<
539 BLKI APR,A ;GET UCODE OPTIONS INTO BITS 0-8 OF A
540 TLNE A,100000 ;SKIP UNLESS KA SIMULATION UCODE LOADED
541 SETOM KASIM
542 >;IFN KACODE
543 IFN KLBOOT,<
544 SETZB P1,BDATA ;Channel 0 to P1 for BLAST, set up for BLT
545 MOVE T1,[BDATA,,BDATA+1] ;Prepare to clear data area
546 BLT T1,BDATA+NDATA-1 ;Initialize data area to zero
547 >;IFN KLBOOT
548 MOVE P,[-LPDL,,PDL-1]
549 PUSHJ P,BLAST ;RESET THE CHANNEL or read the home blocks
550 IFN DSKDBG,<
551 SKIPE N,SYSLOC
552 JRST BOOT1
553 >;IFN DSKDBG
554 IFN RHDSK,<
555 SKIPN N,DIORG ;get location of the MFD
556 JRST NOMFD ;none
557 >;IFN RHDSK
558 IFE RHDSK,<
559 MOVEI N,MFDLOC
560 >;IFE RHDSK
561 MOVE A,[SIXBIT / SSSYS/]
562 PUSHJ P,SRCH ;LOOK FOR _SSSYS.UFD IN MFD
563 JRST NOSYS
564 MOVE N,3(TT) ;GET ADDRESS
565 IFN DSKDBG,<
566 MOVEM N,SYSLOC
567 >;IFN DSKDBG
568 BOOT1: MOVE A,[SIXBIT /DSKDMP/]
569 IFE EXTNEW,< MOVSI B,'DMP' >
570 IFE EXTNEW-1,< MOVSI B,'NEW' >
571 IFE EXTNEW-2,< MOVSI B,'OLD' >
572 IFE EXTNEW-3,< MOVSI B,'TST' >
573 PUSHJ P,SRCH1 ;LOOK FOR DSKDMP.DMP[SS,SYS]
574 JRST NODSKD
575 MOVE N,3(TT) ;GET DISK ADDRESS OF DSKDMP.DMP[SS,SYS]
576 MOVE T,[-<RTLSIZ+200>,,XBUF]
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 8-2
DSKDMP
577 SETZM RECORD
578 PUSHJ P,READ0 ;READ RETRIEVAL AND ONE RECORD
579 MOVE A,XBUF+RTLSIZ+140-74 ;GET LOC 140 OF THE DUMP FILE
580 MOVE B,XBUF+DDLNG ;GET LENGTH OF DUMP FILE
581 IFN DSKDBG,<
582 MOVE C,XBUF+RTLSIZ+JOBSYM↑-74 ;GET POINTER TO SYMBOL TABLE
583 ADDI C,-274(A) ;RELOCATE IT
584 MOVEM C,SYMPNT
585 >;IFN DSKDBG
586 MOVE C,XBUF+RTLSIZ+JOBSA↑-74 ;GET STARTING ADDRESS
587 HRRZM C,STARTA
588 SUBI B,200
589 MOVEM B,LODCNT ;LENGTH OF REMAINDER OF DUMP FILE
590 MOVEM A,LODNXT ;STORE ADDRESS TO LOAD INTO
591 MOVEI B,2
592 MOVEM B,RECORD ;START AT RECORD 2
593 MOVE C,[DPTRBP+XBUF] ;set up byte ptr to retr ptrs
594 MOVEM C,NXTTRK
595 MOVE T,LODCNT
596 CAILE T,DATSIZ-200
597 MOVEI T,DATSIZ-200
598 JRST BOOTL2
599
600 BOOTL1: MOVE T,LODCNT
601 MOVEI N,1
602 MOVEM N,RECORD
603 BOOTL2: ILDB N,NXTTRK
604 CAILE T,DATSIZ
605 MOVEI T,DATSIZ
606 MOVEM T,XFRCNT ;SAVE NUMBER OF WORDS THIS TRANSFER
607 MOVN T,T ;-NUMBER OF WORDS TO TRANSFER
608 HRLZ T,T
609 HRR T,LODNXT ;RH GETS NEXT LOC TO LOAD INTO
610 PUSHJ P,READ0 ;READ REST OF THIS TRACK
611 MOVE A,XFRCNT
612 ADDM A,LODNXT
613 MOVN A,A
614 ADDB A,LODCNT
615 IFN DSKDBG,<
616 JUMPLE A,BOOTL3 ;ALL DONE
617 >;IFN DSKDBG
618 IFE DSKDBG,<
619 JUMPLE A,@STARTA ;DONE, TRANSFER TO DSKDMP
620 >;IFE DSKDBG
621 MOVE A,NXTTRK
622 CAME A,[DPTEBP+XBUF] ;JUST DID LAST TRACK IN GROUP?
623 JRST BOOTL1 ;NO, DO NEXT TRACK
624 MOVE N,XBUF+DNXTGP ;FIRST TRACK OF NEXT GROUP
625 PUSHJ P,RDRET ;READ RETRIEVAL
626 MOVE A,[DPTRBP+XBUF] ;set up byte ptr to retr ptrs
627 MOVEM A,NXTTRK
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 8-3
DSKDMP
628 JRST BOOTL1
629
630 IFN DSKDBG,<
631 BOOTL3: SETOM 37
632 MOVE A,SYMPNT
633 MOVEM A,36
634 JRST @STARTA ;JUMP TO STARTING ADDRESS
635 >;IFN DSKDBG
636
637 NODSKD:
638 IFE KLBOOT,<
639 IFE EXTNEW,< SKIPA B,[[ASCIZ /CAN'T FIND DSKDMP.DMP[SS,SYS]/]] >
640 IFE EXTNEW-1,< SKIPA B,[[ASCIZ /CAN'T FIND DSKDMP.NEW[SS,SYS]/]] >
641 IFE EXTNEW-2,< SKIPA B,[[ASCIZ /CAN'T FIND DSKDMP.OLD[SS,SYS]/]] >
642 IFE EXTNEW-3,< SKIPA B,[[ASCIZ /CAN'T FIND DSKDMP.TST[SS,SYS]/]] >
643 >;IFE KLBOOT
644 IFN KLBOOT,<
645 IFE EXTNEW,< SKIPA B,[[ASCIZ /DMP?/]] >
646 IFE EXTNEW-1,< SKIPA B,[[ASCIZ /NEW?/]] >
647 IFE EXTNEW-2,< SKIPA B,[[ASCIZ /OLD?/]] >
648 IFE EXTNEW-3,< SKIPA B,[[ASCIZ /TST?/]] >
649 >;IFN KLBOOT
650 NOSYS:
651 IFE KLBOOT,<
652 MOVEI B,[ASCIZ /CAN'T FIND SSSYS.UFD[1,1]/]
653 >;IFE KLBOOT
654 IFN KLBOOT,<
655 MOVEI B,[ASCIZ /SS,SYS? /]
656 >;IFN KLBOOT
657 PUSHJ P,TYPE
658 JRST 4,.
659
660 IFN RHDSK,<
661 ;Here if FDSK (called as BLAST) failed to find right disk structure.
662 ;Original error message has already been typed out.
663 NOMFD:
664 IFE KLBOOT,<
665 MOVEI B,[ASCIZ/
666 Type RN to try again, looking for any structure.
667 /]
668 PUSHJ P,TYPE
669 >;IFE KLBOOT
670 JRST 4,.+1
671 SETZM FDEV ;set to accept any structure this time
672 JRST BOOT
673 >;IFN RHDSK
674
675 >;IFE DSKDSW
676
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9
DSKDMP
677 ;⊗ LOWEST DSKDMP DSKDM0 DSKDM1 DSKDM2 DSKDL DSKDL2 DSKDL1 DSKDRO DSKDAL DSKAL1
QQQ DSKDGO CMDS NCMDS CMDDSP SSTRTA SSTRT1 SSTRT2 START LOADGO NOMUCK MERGE LOAD LOADN LOADIT LDIT0 LDIT0A LDIT
1 LDIT3 LDIT4 LDIT2 LDLP LDLP1 LDLP3 FILES DUMP KILL NSA FNF
678
679 ;DSKDMP BEGINS HERE
680
681 IFN DSKDSW,<
682 000000 760000 LOWEST←←.
683 000274 255000 000000 DSKDMP: JFCL FDZBEG ;start with pointer to data area
000000 000000
684 000275 200740 000000 MOVE P,[-LPDL,,PDL-1]
685 000276 700200 200000 CONO APR,200000
686 000277 700600 010000 CONO PI,10000
687 IFN KACODE,<
688 SKPKL
689 JRST DSKDM1
690 >;IFN KACODE
691 000300 700300 200000 CONSZ APR,SWEEPB ;WAIT FOR SWEEP BUSY TO FALL
692 000301 254000 760004 JRST .-1
693 000302 701340 600000 CONSO KLPAG,600000 ;IS THE CACHE ON ALREADY?
694 000303 254000 000000 JRST DSKDM0 ;NO.
695 000304 701500 000000 BLKO CCA, ;VALIDATE CORE
696 000305 700300 200000 CONSZ APR,SWEEPB
697 000306 254000 760011 JRST .-1
698 DSKDM0:
699 IFN RHDSK,<
700 000307 402000 756000 SETZM KLEPT ;clear the channel logout areas
756000 756001
701 000310 200040 000000 MOVE A,[KLEPT,,KLEPT+1]
702 000311 251040 000000 BLT A,KLEPT+MAXCHN*WDPCHN-1 ;clear all channels' logout areas
703 >;IFN RHDSK
704 000312 701200 000756 CONO KLPAG,KLEPT⊗-9 ;TURN OFF CACHE. set EPT address. TURN OFF MA
P
705 000313 701440 000000 DATAI CCA,0 ;SWEEP CACHE. INVALIDATE ALL.
706 000314 700300 200000 CONSZ APR,SWEEPB ;WAIT FOR SWEEP BUSY TO FALL
707 000315 254000 760020 JRST .-1
708
709 IFN KACODE,<
710 BLKI APR,A ;GET UCODE OPTIONS INTO BITS 0-8 OF A
711 TLNN A,100000 ;SKIP IF KA SIMULATION UCODE LOADED
712 JRST DSKDM1
713 SETOM KASIM
714 CONO KLPAG,KLEPT⊗-9 ;MAKE SURE EPT IS AT right place
715 MOVEI C,411
716 PUSHJ P,DTEXX ;TELL KLDCP TO ENTER KASIM MODE
717 IFN RHDSK,<
718 PRINTX This can't possibly work, since EPT isn't where RH routines expect it
719 ;and if EPT is at page 1000, we can't address it with straight-thru map.
720 >;IFN RHDSK
721 CONO KLPAG,1000 ;MOVE EPT TO PAGE 1000
722 PUSHJ P,BLAST ;init the C1 channel or read the RH home blocks
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-2
DSKDMP
723 JRST DSKDM2
724
725 >;IFN KACODE
726 000316 260740 000000 DSKDM1: PUSHJ P,BLAST ;init the C1 channel or read the RH home blocks
727 000317 402000 000000 SETZM KASIM
728 IFN KACODE,<
729 SKPKL
730 CONO TTY,3600 ;CLEAR ALL BUSY AND DONE FLAGS
731 SKIPN KASIM
732 >;IFN KACODE
000063 637163
733 000320 334100 000000 SKIPA B,[SIXBIT / SSYS/]
000044 637163
734 000321 200100 000000 DSKDM2: MOVE B,[SIXBIT / DSYS/];DIAGNOSTICS LIVE HERE
735 000322 202100 000000 MOVEM B,DEFPPN
736 000323 201000 000000 MOVEI F,0
737 MOVEI B,[ASCIZ /
064250 451626
422332 000000
738 000324 201100 000000 DSKDMP/]
739 000325 260740 000000 PUSHJ P,TYPE
740 IFN KACODE,<
741 SKIPN KASIM
742 JRST DSKDL
743 MOVEI B,[ASCIZ /
744 KA SIMULATION MICROCODE LOADED
745 SWITCHES = /]
746 PUSHJ P,TYPE
747 DATAI APR,B
748 PUSHJ P,OCTTYP
749 >;IFN KACODE
750 DSKDL: MOVEI B,[ASCIZ /
064245 200000
751 000326 201100 000000 */]
752 000327 260740 000325 PUSHJ P,TYPE
753 000330 620000 000001 TRZ F,RBO
754 000331 201100 000000 MOVEI B,0
010700 000000
755 000332 200040 000000 DSKDL2: MOVE A,[010700,,TIBUF-1]
756 000333 402000 000000 SETZM TIBUF
000000 000000
757 000334 200140 000000 MOVE C,[TIBUF,,TIBUF+1]
758 000335 251140 000000 BLT C,TIBUF+TIBFLN-1
759 000336 260740 000000 DSKDL1: PUSHJ P,TYI ;GET CHARACTER IN C
760 000337 306140 000177 CAIN C,177
761 000340 254000 000000 JRST DSKDRO ;RUBOUT
762 000341 622000 000001 TRZE F,RBO
763 261740 000003 JRST [ PUSH P,C
764 201140 000134 MOVEI C,"\"
765 260740 000000 PUSHJ P,TYO
766 262740 000003 POP P,C
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-3
DSKDMP
767 260740 000000 PUSHJ P,TYO
768 302140 000015 CAIE C,15
769 254000 760047 JRST .+1
770 201140 000012 MOVEI C,12
771 260740 000000 PUSHJ P,TYO
772 201140 000015 MOVEI C,15
254000 760047
773 000342 254000 000000 JRST .+1 ]
774 000343 306140 000015 CAIN C,15
775 000344 254000 000000 JRST DSKDGO
776 000345 306140 000033 CAIN C,33
777 000346 254000 000000 JRST DSKDAL ;ALT MODE
778 000347 306140 000025 CAIN C,"U"-100
779 000350 254000 760032 JRST DSKDL
780 000351 136140 000001 IDPB C,A
781 000352 254000 760042 JRST DSKDL1
782
010700 000000
783 000353 316040 000000 DSKDRO: CAMN A,[010700,,TIBUF-1]
784 000354 254000 760032 JRST DSKDL
785 000355 201140 000134 MOVEI C,"\"
786 000356 666000 000001 TRON F,RBO ;SET RUBOUT FLAG, SKIP IF ALREADY ON
787 000357 260740 000000 PUSHJ P,TYO
788 000360 135140 000001 LDB C,A
789 000361 260740 000357 PUSHJ P,TYO
790 000362 201140 000000 MOVEI C,0
791 000363 137140 000001 DPB C,A
070000 000000
792 000364 270040 000000 ADD A,[070000,,]
793 000365 325040 760042 JUMPGE A,DSKDL1
430000 000001
794 000366 274040 000000 SUB A,[430000,,1]
795 000367 254000 760042 JRST DSKDL1
796
350700 000000
797 000370 135040 000000 DSKDAL: LDB A,[POINT 7,TIBUF,6] ;GET FIRST CHARACTER
798 000371 301040 000060 CAIL A,"0"
799 000372 303040 000071 CAILE A,"9"
800 000373 304000 000000 CAIA
801 000374 254000 000000 JRST SSTRTA ;SET STARTING ADDRESS
802 000375 200040 000333 MOVE A,TIBUF
803 000376 205100 000000 MOVSI B,-NCMDS
804 000377 312042 000000 DSKAL1: CAME A,CMDS(B)
805 000400 253100 760103 AOBJN B,DSKAL1
806 000401 321100 760036 JUMPL B,DSKDL2 ;JUMP IF FOUND ONE (B REMEMBERS THE COM
MAND)
807 000402 260740 000000 PUSHJ P,QQQ
808 000403 254000 760032 JRST DSKDL
809
201007 737576
000000 000000
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-4
DSKDMP
810 000404 201100 000000 QQQ: MOVEI B,[ASCIZ / ???/]
811 000405 254000 000327 JRST TYPE
812
813 000406 322100 000000 DSKDGO: JUMPE B,LOADGO ;JUST FILE NAME
814 000407 254022 000000 JRST @CMDDSP(B) ;DISPATCH ON COMMAND
815
816 000410 460000 000000 CMDS: ASCII /L/ ;LOAD
817 000411 430000 000000 ASCII /F/ ;LIST FILES
818 000412 420000 000000 ASCII /D/ ;DUMP
819 000413 454000 000000 ASCII /K/ ;KILL A FILE
820 000414 434000 000000 ASCII /G/ ;START AT STARTING ADDRESS
821 000415 464000 000000 ASCII /M/ ;MERGE (LOAD WITHOUT CLEAR)
822 000416 470000 000000 ASCII /N/ ;LIKE L BUT DOESN'T HACK LOW CORE CELLS
823 000000 000007 NCMDS←←.-CMDS
824
825 000417 000000 000000 CMDDSP: LOAD
826 000420 000000 000000 FILES
827 000421 000000 000000 DUMP
828 000422 047000 400056 KILL
829 000423 000000 000000 START
830 000424 000000 000000 MERGE
831 000425 000000 000000 NOMUCK
832
440700 000000
833 000426 200040 000000 SSTRTA: MOVE A,[POINT 7,TIBUF]
834 000427 201100 000000 MOVEI B,0
835 000430 134140 000001 SSTRT1: ILDB C,A
836 000431 301140 000060 CAIL C,"0"
837 000432 303140 000071 CAILE C,"9"
838 000433 254000 000000 JRST SSTRT2
839 000434 242100 000003 LSH B,3
840 000435 271103 777720 ADDI B,-"0"(C)
841 000436 254000 760134 JRST SSTRT1
842
843 000437 202100 000000 SSTRT2: MOVEM B,STARTA
844 000440 254000 760032 JRST DSKDL
845
846 000441 260740 000000 START: PUSHJ P,TWAIT ;WAIT FOR TTY TO FINISH
847 000442 332000 000437 SKIPE STARTA
848 000443 254020 000442 JRST @STARTA
472364 051650
406452 444634
435010 142210
512132 351400
849 000444 201100 000000 MOVEI B,[ASCIZ /NO STARTING ADDRESS/]
850 000445 260740 000405 PUSHJ P,TYPE
851 000446 254000 760032 JRST DSKDL
852
853 000447 476000 000000 LOADGO: SETOM ZERFLG
854 000450 476000 000000 SETOM MUCKFL
855 000451 260740 000000 PUSHJ P,LOADIT
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-5
DSKDMP
856 000452 254000 760032 JRST DSKDL ;COULDN'T DO IT
202311 740610
426100 000000
857 000453 201100 000000 MOVEI B,[ASCIZ / LOADED/]
858 000454 260740 000445 PUSHJ P,TYPE
859 000455 260740 000441 PUSHJ P,TWAIT
860 000456 332000 000443 SKIPE STARTA
861 000457 254020 000456 JRST @STARTA ;START IT UP
202052 552100
472364 051650
406452 444634
435010 142210
512132 351400
862 000460 201100 000000 MOVEI B,[ASCIZ / BUT NO STARTING ADDRESS/]
863 000461 260740 000454 PUSHJ P,TYPE
864 000462 254000 760032 JRST DSKDL
865
866 000463 476000 000447 NOMUCK: SETOM ZERFLG
867 000464 402000 000450 SETZM MUCKFL
868 000465 254000 000000 JRST LOADN
869
870 000466 402000 000463 MERGE: SETZM ZERFLG
871 000467 476000 000464 SETOM MUCKFL
872 000470 254000 000465 JRST LOADN
873
874 000471 476000 000466 LOAD: SETOM ZERFLG
875 000472 476000 000467 SETOM MUCKFL
876 000473 260740 000451 LOADN: PUSHJ P,LOADIT
877 000474 254000 760032 JRST DSKDL ;COULDN'T DO IT
202311 740610
426100 000000
878 000475 201100 000000 MOVEI B,[ASCIZ / LOADED/]
879 000476 260740 000461 PUSHJ P,TYPE
880 000477 254000 760032 JRST DSKDL
881
882 ;SKIP RETURNS IF SUCCESSFUL
883 000500 260740 000000 LOADIT: PUSHJ P,FILSET ;SET UP FILE NAME
884 000501 336000 000000 SKIPN FNAM
885 000502 254000 760110 JRST QQQ
886 IFN RHDSK,<
887 000503 200040 000000 MOVE A,FDEV ;see what structure is requested
888 000504 316040 000000 CAMN A,STRNAM ;skip if diff structure seen, need to scan disk
889 000505 336000 000000 SKIPN DIORG ;skip if already have info for this structure
890 000506 260740 000000 PUSHJ P,FDSK ;find desired structure on the disk
891 000507 336600 000505 SKIPN N,DIORG ;get location of the MFD
892 000510 254000 760110 JRST QQQ ;didn't find MFD, msg already typed, type ???
893 >;IFN RHDSK
894 IFE RHDSK,<
895 MOVEI N,MFDLOC
896 >;IFE RHDSK
897 000511 200040 000000 MOVE A,FPPN
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-6
DSKDMP
898 000512 202040 000322 MOVEM A,DEFPPN
899 000513 260740 000000 PUSHJ P,SRCH
900 000514 254000 000000 JRST NSA ;UFD NOT FOUND IN MFD
901 000515 200616 000003 MOVE N,3(TT) ;DISK ADDRESS OF UFD
902 000516 200040 000501 MOVE A,FNAM
903 000517 510100 000000 HLLZ B,FEXT
904 000520 260740 000000 PUSHJ P,SRCH1
905 000521 254000 000000 JRST FNF ;FILE NOT FOUND IN UFD
906 000522 200616 000003 MOVE N,3(TT) ;DISK ADDRESS OF FILE
907 000523 336000 000471 SKIPN ZERFLG
908 000524 254000 000000 JRST LDIT0
909 000525 402000 000040 SETZM 40
000040 000041
910 000526 200040 000000 MOVE A,[40,,41]
911 IFE RHDSK,<
912 BLT A,DSKDMP-1 ;CLEAR CORE UP TO DSKDMP
913 >;IFE RHDSK
914 IFN RHDSK,<
915 000527 251040 755777 BLT A,KLEPT-1 ;CLEAR CORE UP TO DSKDMP, preserve EPT
916 >;IFN RHDSK
777400 000000
917 000530 200640 000000 LDIT0: MOVE T,[-<RTLSIZ+200>,,XBUF]
918 000531 402000 000000 SETZM RECORD
919 000532 260740 000000 PUSHJ P,READ0 ;READ RETRIEVAL AND ONE RECORD
920 000533 403140 000000 SETZB C,FHILOC
921 000534 402000 000457 SETZM STARTA
922 000535 336000 000472 SKIPN MUCKFL ;SKIP IF MUCKING WITH LOW CORE CELLS
923 000536 254000 000000 JRST LDIT0A
924 000537 200140 000000 MOVE C,XBUF+RTLSIZ+JOBSYM↑-74 ;GET POINTER TO SYMBOL TABLE
925 000540 202140 000000 MOVEM C,SYMPNT ;SAVE FOR LATER
926 000541 200140 000000 MOVE C,XBUF+RTLSIZ+JOBSA↑-74 ;GET STARTING ADDRESS
927 000542 552140 000534 HRRZM C,STARTA
928 000543 200140 000000 MOVE C,XBUF+RTLSIZ+HILOC↑-74 ;ADDRESS OF BEGINNING OF UPPER
929 000544 202140 000533 MOVEM C,FHILOC
930 000545 200100 000000 LDIT0A: MOVE B,XBUF+DDLNG ;GET LENGTH OF DUMP FILE
931 000546 322140 000000 JUMPE C,LDIT1 ;NO UPPER
932 000547 201103 777704 MOVEI B,-74(C) ;FILE SIZE OF LOWER
933 000550 275140 000001 SUBI C,1
934 000551 435140 001777 IORI C,1777 ;LAST ADDRESS OF LOWER
935 000552 305140 377777 CAIGE C,377777
936 000553 201140 377777 MOVEI C,377777
937 000554 271140 000001 ADDI C,1
938 000555 202140 000000 MOVEM C,UPPRST ;UPPER STARTS HERE
939 000556 202100 000000 LDIT1: MOVEM B,LODCNT
940 000557 201040 000074 MOVEI A,74
941 000560 202040 000000 MOVEM A,LODNXT ;STORE ADDRESS TO LOAD INTO
942 000561 260740 000000 PUSHJ P,LDLP ;LOAD THE LOWER
943 000562 336140 000544 SKIPN C,FHILOC ;SKIP IF THERE IS AN UPPER
944 000563 254000 000000 JRST LDIT2 ;NO UPPER
945 000564 200100 000545 MOVE B,XBUF+DDLNG
946 000565 275103 777704 SUBI B,-74(C) ;COMPUTE SIZE OF UPPER
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-7
DSKDMP
947 000566 202100 000556 MOVEM B,LODCNT
948 000567 200100 000555 MOVE B,UPPRST
949 000570 202100 000560 MOVEM B,LODNXT ;STARTING CORE ADDRESS OF UPPER
950 000571 200040 000531 MOVE A,RECORD ;NEXT RECORD TO READ IS FIRST REC OF UP
PER
951 000572 306040 000011 CAIN A,DATRPB+1
952 000573 254000 000000 JRST LDIT3 ;UPPER BEGINS ON A TRACK BOUNDARY
953 000574 210640 000001 MOVN T,A
954 000575 271640 000011 ADDI T,DATRPB+1 ;NUMBER OF RECORDS LEFT IN TRACK
955 000576 221640 000200 IMULI T,200 ;NUMBER OF WORDS LEFT IN TRACK
956 000577 313640 000566 CAMLE T,LODCNT
957 000600 200640 000577 MOVE T,LODCNT
958 000601 135600 000000 LDB N,NXTTRK
959 000602 260740 000000 PUSHJ P,LDLP3
960 000603 254000 000563 JRST LDIT2
961
962 000604 200040 000601 LDIT3: MOVE A,NXTTRK
000000 000000
963 000605 312040 000000 CAME A,[DPTEBP+XBUF] ;JUST DID LAST TRACK IN GROUP?
964 000606 254000 000000 JRST LDIT4
965 000607 200600 000000 MOVE N,XBUF+DNXTGP
966 000610 260740 000000 PUSHJ P,RDRET ;READ RETRIEVAL OF NEXT GROUP
000000 000000
967 000611 200040 000000 MOVE A,[DPTRBP+XBUF] ;set up byte ptr to retr ptrs
968 000612 202040 000604 MOVEM A,NXTTRK
969 000613 260740 000000 LDIT4: PUSHJ P,LDLP1 ;LOAD THE UPPER
970 000614 201040 777777 LDIT2: MOVEI A,-1
971 000615 202040 000037 MOVEM A,37
972 000616 200040 000540 MOVE A,SYMPNT
973 IFN KACODE,<
974 SKIPE KASIM
975 MOVEI A,116 ;PDP-6 DDT EXPECTS 36 TO POINT TO SYM P
TR
976 >;IFN KACODE
977 000617 202040 000036 MOVEM A,36
978 000620 254000 000000 JRST CPOPJ1
979
980 ;SET LODNXT TO FIRST LOCATION TO LOAD INTO, LODCNT TO NUMBER OF WORDS TO TRANSF
ER
981 ;STARTS READING AT THE BEGINNING OF THE GROUP WHOSE RETRIEVAL IS IN XBUF
000000 000000
982 000621 200140 000000 LDLP: MOVE C,[DPTRBP+XBUF] ;set up byte ptr to retr ptrs
983 000622 202140 000612 MOVEM C,NXTTRK
984 000623 200640 000600 LDLP1: MOVE T,LODCNT
985 000624 201600 000001 MOVEI N,1
986 000625 202600 000571 MOVEM N,RECORD
987 000626 134600 000622 ILDB N,NXTTRK
988 000627 303640 002000 LDLP3: CAILE T,DATSIZ
989 000630 201640 002000 MOVEI T,DATSIZ
990 000631 202640 000000 MOVEM T,XFRCNT ;SAVE NUMBER OF WORDS THIS TRANSFER
991 000632 210640 000015 MOVN T,T ;-NUMBER OF WORDS TO TRANSFER
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-8
DSKDMP
992 000633 514640 000015 HRLZ T,T
993 000634 540640 000570 HRR T,LODNXT ;RH GETS NEXT LOC TO LOAD INTO
994 000635 260740 000532 PUSHJ P,READ0 ;READ THE TRACK
995 000636 200040 000631 MOVE A,XFRCNT
996 000637 272040 000634 ADDM A,LODNXT
997 000640 210040 000001 MOVN A,A
998 000641 273040 000623 ADDB A,LODCNT
999 000642 323040 000000 JUMPLE A,CPOPJ ;DONE
1000 000643 200040 000626 MOVE A,NXTTRK
000000 000000
1001 000644 312040 000000 CAME A,[DPTEBP+XBUF] ;JUST DID LAST TRACK IN GROUP?
1002 000645 254000 760327 JRST LDLP1 ;NO, DO NEXT TRACK
1003 000646 200600 000607 MOVE N,XBUF+DNXTGP ;FIRST TRACK OF NEXT GROUP
1004 000647 260740 000610 PUSHJ P,RDRET ;READ RETRIEVAL
1005 000650 254000 760325 JRST LDLP
1006
432231 442646
202071 746632
406350 420234
476504 044632
502310 546612
472510 542100
546132 400000
1007 000651 201100 000000 FILES: MOVEI B,[ASCIZ /FILES COMMAND NOT IMPLEMENTED YET/]
1008 000652 260740 000476 PUSHJ P,TYPE
1009 000653 254000 760032 JRST DSKDL
1010
422531 550100
416371 546602
472104 047236
521011 146640
462131 542634
522130 420262
426500 000000
1011 000654 201100 000000 DUMP: MOVEI B,[ASCIZ /DUMP COMMAND NOT IMPLEMENTED YET/]
1012 000655 260740 000652 PUSHJ P,TYPE
1013 000656 254000 760032 JRST DSKDL
1014
456231 446100
416371 546602
472104 047236
521011 146640
462131 542634
522130 420262
426500 000000
1015 000657 201100 000000 KILL: MOVEI B,[ASCIZ /KILL COMMAND NOT IMPLEMENTED YET/]
1016 000660 260740 000655 PUSHJ P,TYPE
1017 000661 254000 760032 JRST DSKDL
1018
472364 051652
416204 040644
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 9-9
DSKDMP
426024 026500
000000 000000
1019 000662 201100 000000 NSA: MOVEI B,[ASCIZ /NO SUCH AREA - /]
1020 000663 260740 000660 PUSHJ P,TYPE
1021 000664 254000 000000 JRST PPNTYP
1022
472364 051652
416204 043222
462124 026500
000000 000000
1023 000665 201100 000000 FNF: MOVEI B,[ASCIZ /NO SUCH FILE - /]
1024 000666 260740 000663 PUSHJ P,TYPE
1025 000667 254000 000000 JRST FILTYP
1026
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 10
DSKDMP
1027 ;⊗ FILSET FILSE0 FILSE1 FILSIX FILSI1 RADJ RADJ1
1028
1029 ;SCAN TIBUF AND SET UP FILE NAME, EXTENSION AND PPN
1030 FILSET:
1031 IFN RHDSK,<
1032 000670 200100 000000 MOVE B,DEFDEV ;set up default structure name (device)
1033 000671 202100 000503 MOVEM B,FDEV
1034 >;IFN RHDSK
1035 000672 200100 000512 MOVE B,DEFPPN
1036 000673 202100 000511 MOVEM B,FPPN
1037 000674 200100 000000 MOVE B,DEFEXT
1038 000675 202100 000517 MOVEM B,FEXT
1039 000676 402000 000516 SETZM FNAM
1040 000677 402000 000000 SETZM FEXT+1
010700 000000
1041 000700 200040 000000 MOVE A,[010700,,TIBUF-1]
1042 000701 260740 000000 PUSHJ P,FILSIX
1043 IFN RHDSK,<
1044 000702 302200 000072 CAIE D,":" ;device given?
1045 000703 254000 000000 JRST FILSE0 ;no, must be filename
1046 000704 202100 000671 MOVEM B,FDEV ;yes, store device name
1047 000705 260740 000701 PUSHJ P,FILSIX ;now read filename
1048 FILSE0:
1049 >;IFN RHDSK
1050 000706 202100 000676 MOVEM B,FNAM
1051 000707 302200 000056 CAIE D,"."
1052 000710 254000 000000 JRST FILSE1
1053 000711 260740 000705 PUSHJ P,FILSIX
1054 000712 512100 000675 HLLZM B,FEXT
1055 000713 302200 000133 FILSE1: CAIE D,"["
1056 000714 263740 000000 POPJ P,
1057 000715 260740 000711 PUSHJ P,FILSIX
1058 000716 260740 000000 PUSHJ P,RADJ
1059 000717 502100 000673 HLLM B,FPPN
1060 000720 302200 000054 CAIE D,","
1061 000721 263740 000000 POPJ P,
1062 000722 260740 000715 PUSHJ P,FILSIX
1063 000723 260740 000716 PUSHJ P,RADJ
1064 000724 546100 000717 HLRM B,FPPN
1065 000725 263740 000000 POPJ P,
1066
1067 000726 201100 000000 FILSIX: MOVEI B,0
440600 000002
1068 000727 200140 000000 MOVE C,[440600,,B]
1069 000730 134200 000001 FILSI1: ILDB D,A ;GET NEXT CHARACTER FROM BUFFER
1070 000731 302200 000056 CAIE D,"."
1071 000732 306200 000133 CAIN D,"["
1072 000733 263740 000000 POPJ P,
1073 000734 302200 000054 CAIE D,","
1074 000735 306200 000135 CAIN D,"]"
1075 000736 263740 000000 POPJ P,
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 10-2
DSKDMP
1076 IFN RHDSK,<
1077 000737 306200 000072 CAIN D,":" ;see structure name?
1078 000740 263740 000000 POPJ P, ;yes
1079 >;IFN RHDSK
1080 000741 322200 000642 JUMPE D,CPOPJ
1081 000742 275200 000040 SUBI D,40
1082 000743 603140 770000 TLNE C,770000
1083 000744 136200 000003 IDPB D,C
1084 000745 254000 760434 JRST FILSI1
1085
1086 000746 322100 000741 RADJ: JUMPE B,CPOPJ
1087 000747 603100 000077 RADJ1: TLNE B,77
1088 000750 263740 000000 POPJ P,
1089 000751 242100 777772 LSH B,-6
1090 000752 254000 760453 JRST RADJ1
1091 >;IFN DSKDSW
1092
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 11
DSKDMP
1093 ;⊗ SRCH SRCH1 SRCH2 SRCH3 SRCHLP SRCH5 SRCH4 RDRET READ READ0 READC1 C1WAIT C1W
AIA C1WAIB C1WERR C1DIE C1MPIL C1MPI1 C1SET BLAST RSTC1
1094
1095 ;SRCH IS GIVEN A FILENAME IN A AND A block IN N.
1096 ;SRCH1 IS GIVEN A FILENAME IN A, AN EXTENSION IN B AND A block IN N
1097 000753 205100 654644 SRCH: MOVSI B,'UFD'
1098 000754 260740 000000 SRCH1: PUSHJ P,READ ;READ block N INTO XBUF
1099 000755 336640 000564 SKIPN T,DDLNG+XBUF ;GET FILE LENGTH
1100 000756 263740 000000 POPJ P,
000000 000000
1101 000757 200700 000000 MOVE TT,[DPTRBP+XBUF] ;set up byte ptr to get retr ptrs
1102 000760 133000 000016 IBP TT ;prepare to get second retr ptr (skip first)
1103 000761 202700 000643 MOVEM TT,NXTTRK
776000 000000
1104 000762 200700 000000 SRCH2: MOVE TT,[-DATSIZ,,XBUF+RTLSIZ] ;scan block starting beyond retrieval
1105 000763 510156 000001 SRCH3: HLLZ C,1(TT) ;get file extension
1106 000764 316056 000000 CAMN A,(TT)
1107 000765 312100 000003 CAME B,C
1108 000766 254000 000000 JRST SRCHLP ;not the file we want
1109 000767 254000 000620 JRST CPOPJ1 ;RETURN WITH POINTER IN TT
1110
1111 000770 275640 000020 SRCHLP: SUBI T,NUFDWD ;one less UFD entry left
1112 000771 323640 000746 JUMPLE T,CPOPJ ;jump if no more data in UFD, file not found
000017 000017
1113 000772 270700 000000 ADD TT,[NUFDWD-1,,NUFDWD-1] ;advance to next UFD entry
1114 000773 253700 760467 AOBJN TT,SRCH3 ;jump if more UFD entries
1115 000774 200700 000761 MOVE TT,NXTTRK ;get byte ptr to next block
000000 000000
1116 000775 316700 000000 CAMN TT,[DPTEBP+XBUF] ;JUST DID LAST block IN GROUP?
1117 000776 254000 000000 JRST SRCH4 ;YES, get next group
1118 000777 134600 000774 ILDB N,NXTTRK ;no, get next block within group
1119 001000 261740 000015 SRCH5: PUSH P,T ;SAVE COUNT OF WORDS LEFT TO SEARCH
1120 001001 260740 000754 PUSHJ P,READ ;READ IN THE NEXT block
1121 001002 262740 000015 POP P,T
1122 001003 254000 760466 JRST SRCH2 ;go search the new block
1123
1124 001004 200600 000646 SRCH4: MOVE N,DNXTGP+XBUF ;NUMBER OF FIRST block of NEXT GROUP
000000 000000
1125 001005 200700 000000 MOVE TT,[DPTRBP+XBUF] ;set up byte ptr to get retr ptrs
1126 001006 133000 000016 IBP TT ;prepare to get second retr ptr (skip first)
1127 001007 202700 000777 MOVEM TT,NXTTRK
1128 001010 254000 760504 JRST SRCH5
1129
1130 ;RDRET READS RETRIEVAL OF block WHOSE ADDRESS IS IN N
1131 ;READ READS ENTIRE block WHOSE ADDRESS IS IN N
777600 000000
1132 001011 334640 000000 RDRET: SKIPA T,[-RTLSIZ,,XBUF] ;read retrieval only into this buffer
775600 000000
1133 001012 200640 000000 READ: MOVE T,[-BLKSIZ,,XBUF] ;read whole block into this buffer
1134 001013 402000 000625 SETZM RECORD ;START READING AT RECORD ZERO within block
1135 READ0:
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 11-2
DSKDMP
1136 IFN RHDSK,<
1137 001014 201715 000000 MOVEI TT,(T) ;memory address of transfer
002600 000000
1138 001015 137700 000000 DPB TT,[POINT 22,ICCW,35] ;store physical address (same as virtual addr
)
1139 001016 574700 000015 HLRE TT,T ;get negative word count
1140 001017 210700 000016 MOVN TT,TT ;positive word count
1141 001020 303700 003777 CAILE TT,3777 ;max word count for one CCW
1142 001021 254200 760525 JRST 4,. ;word count wouldn't have fit in CCW
261300 000000
1143 001022 137700 000000 DPB TT,[POINT 11,ICCW,13] ;store word count for channel
1144 001023 200640 000014 MOVE T,N ;get record number of transfer
1145 001024 270640 001013 ADD T,RECORD ;add in record offset within WAITS block
1146 001025 230640 000000 IDIV T,HOMSIZ ;record number within unit to TT, logical unit
to T
1147 001026 313640 000000 CAMLE T,MAXUNI ;make sure valid unit number
1148 001027 254200 760533 JRST 4,. ;unit number out of range
222115 000000
1149 001030 135240 000000 LDB P1,[POINT 17,DSKTAB(T),17] ;get physical channel number for log. un
it
1150 001031 550315 000000 HRRZ P2,DSKTAB(T) ;get physical drive number of logical unit
1151 001032 200640 000016 MOVE T,TT ;record nbr within unit
1152 001033 230640 000000 IDIV T,NUMSCL ;rec nbr within cyl to TT, cyl to T
1153 001034 261740 000015 PUSH P,T ;save cyl
1154 001035 200640 000016 MOVE T,TT ;rec nbr within cyl
1155 001036 230640 000000 IDIV T,NUMSTK ;sector within track to TT, track to T
1156 001037 200400 000016 MOVE P4,TT ;sector in low bits
1157 001040 242640 000010 LSH T,=35-=27 ;move track (head) number to end in bit 27
1158 001041 434400 000015 IOR P4,T ;combine head and sector
000000 000000
1159 001042 434400 000000 IOR P4,[.RHSBR!LR] ;For RH20 SBAR
1160 001043 262740 000011 POP P,T1 ;get back cyl
1161 001044 254000 000000 JRST RDDISK ;tell the channel to do the transfer
1162 >;IFN RHDSK
1163 IFE RHDSK,<
1164 READC1: PUSHJ P,C1MPIL ;HERE WITH WCMA IN T, COMPILE INTO MRT
INST
1165 PUSH P,T ;SAVE RECORD NUMBER RETURNED BY C1MPIL
1166 SETZM C1ERR ;CLEAR ERROR COUNT
1167 PUSH P,N+1 ;save AC N+1
1168 IDIVI N,TRKPK ;N←PACK, N+1←TRACK ON PACK
1169 EXCH N+1,(P) ;restore N+1, save track on pack
1170 POP P,T ;T←track on pack
1171 IDIVI T,TRKCYL ;T←CYLINDER, TT←HEAD
1172 DPB T,[POINT 16,C1CCHR,15] ;C C
1173 DPB TT,[POINT 8,C1CCHR,23] ;H
1174 MOVE TT,RECORD
1175 POP P,RECORD
1176 DPB TT,[POINT 8,C1CCHR,31] ;R
1177 MOVE TT,C1WCHN(N) ;GET CHANNEL NUMBER
1178 DPB N,[POINT 4,@C1PPTP(TT),12] ;STORE DISK DRIVE ADDRESS
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 11-3
DSKDMP
1179 MOVEI N,4
1180 DPB N,[POINT 5,@C1PPTP(TT),4] ;STORE START CODE
1181 C1WAIT: JUMPN TT,C1WAIB
1182 CONSO C1A,CIF
1183 JRST .-1
1184 MOVEI T,0
1185 EXCH T,C1APT+C1ISW
1186 C1WAIA: TLC T,200000
1187 TLNE T,600000
1188 JRST C1WERR
1189 MOVE T,C1PH+C1STA ;STATUS A WORD
1190 TRNN T,C1HLT
1191 JRST C1WERR
1192 XCT C1CIFI(TT) ;CLEAR INT FLAG
1193 POPJ P,
1194
1195 C1WAIB: CONSO C1B,CIF
1196 JRST .-1
1197 MOVEI T,0
1198 EXCH T,C1BPT+C1ISW
1199 JRST C1WAIA
1200
1201 C1WERR: AOS T,C1ERR
1202 CAIL T,=10
1203 JRST C1DIE
1204 PUSHJ P,BLAST ;re-initialize the C1 channel
1205 MOVEI T,4
1206 DPB T,[POINT 5,@C1PPTP(TT),4] ;START C1 AGAIN
1207 JRST C1WAIT
1208
1209 C1DIE: MOVEI B,[ASCIZ /C1 ERRORS
1210 /]
1211 PUSHJ P,TYPE
1212 JRST 4,.
1213
1214
1215 C1MPIL: PUSH P,A ;HERE WITH WCMA IN T, 1ST RECORD # IN R
ECORD
1216 PUSH P,B
1217 PUSH P,C
1218 MOVE A,[-=21,,C1MRTD-1] ;PUSH DOWN POINTER FOR DATA POINTERS
1219 MOVE B,RECORD
1220 C1MPI1: HRLZ C,RCLTAB(B) ;GET SIZE OF RECORD
1221 LSH C,4
1222 HRR C,T
1223 TLO C,600000 ;MARK AS DATA PNTR AND 1ST OF THE RECOR
D
1224 PUSH A,C
1225 ADD T,RCLTAB(B)
1226 ADDI B,1 ;ADVANCE RECORD NUMBER
1227 JUMPL T,C1MPI1
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 11-4
DSKDMP
1228 MOVE T,B ;RETURN NEXT RECORD NUMBER IN T
1229 PUSH A,[0]
1230 POP P,C
1231 POP P,B
1232 POP P,A
1233 POPJ P,
1234
1235 C1SET: SETZM C1ZERO
1236 MOVE A,[C1ZERO,,C1ZERO+1]
1237 BLT A,C1ZEND-1
1238 MOVEI A,253
1239 MOVEM A,C1APT+C1CCW
1240 MOVEM A,C1BPT+C1CCW
1241 MOVEI A,C1BW ;BUSY WAIT BIT
1242 MOVEM A,C1PH
1243 MOVE A,[C1JMP,,C1MRTC]
1244 MOVEM A,C1PH+C1INST
1245 MOVE A,[<BYTE (5)37 (8)CUADR⊗4>!C1PH]
1246 MOVEM A,C1APT+C1PPTR
1247 MOVE A,[<BYTE (5)37 (8)<CUADR+1>⊗4>!C1PH]
1248 MOVEM A,C1BPT+C1PPTR
1249 POPJ P,
1250
1251 ;See FDSK for the IFN RHDSK version of BLAST; this is the IFE RHDSK version.
1252 BLAST:
1253 ;RESET C1 CHANNELS
1254 RSTC1: AOSN C1FRST
1255 PUSHJ P,C1SET ;SET UP C1 DATA AREAS ONCE ONLY
1256 CONO C1A,C1SBI!C1RSI!C1SRUN!C1CONT ;RESET ALL CHANNELS START CLOCK
1257 CONO C1A,C1SCH!C1RST!C1MPCN ;RESET CHAN A AND START UP
1258 CONO C1B,C1SCH!C1RST!C1MPCN ;RESET CHAN B AND START UP
1259 CONO C1A,C1SCH!C1SCF1!C1LCD!C1SYSR ;TELL C1A TO DO A SYSTEM RESET
1260 MOVEI A,100000
1261 CONSZ C1A,CF1 ;WAIT FOR IT TO DROP CF1
1262 SOJG A,.-1
1263 CONO C1B,C1SCH!C1SCF1!C1LCD!C1SYSR ;TELL C1B TOO
1264 MOVEI A,100000
1265 CONSZ C1B,CF1
1266 SOJG A,.-1
1267 CONO C1A,C1SCH!C1SCF1!C1LCD!C1LPT ;INT THE CHANNEL FOR LD ...
1268 CONO C1B,C1SCH!C1SCF1!C1LCD!C1LPT ;...PGM TABLE.
1269 MOVEI A,100000
1270 CONSO C1A,CF2 ;WAIT FOR CHANNEL TO BE READY FOR PGM T
BL
1271 SOJG A,.-1
1272 DATAO C1A,C1PTP ;TELL IT WHERE THE PROGRAM TABLE IS
1273 CONO C1A,C1SCH!C1CCF1 ;CLEAR CF1 (TELL IT WE'VE TOLD IT)
1274 MOVEI A,100000
1275 CONSZ C1A,CF2 ;WAIT FOR CHANNEL TO DROP CF2
1276 SOJG A,.-1
1277 MOVEI A,100000
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 11-5
DSKDMP
1278 CONSO C1B,CF2 ;REPEAT FOR SECOND CHANNEL
1279 SOJG A,.-1
1280 DATAO C1B,C1PTP+1
1281 CONO C1B,C1SCH!C1CCF1
1282 MOVEI A,100000
1283 CONSZ C1B,CF2
1284 SOJG A,.-1
1285 POPJ P,
1286 >;IFE RHDSK
1287
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 12
DSKDMP
1288 ;⊗ TYPE TYPE1 TYO CPOPJ1 CPOPJ DTEXX KLTYO KLTYI TYI KLTYI1 POPCJ TYICAN FILTYP
PPNTYP TYPSIX TYPSI1 TWAIT OCTTYP OCTTY1
1289
1290 001045 505100 440700 TYPE: HRLI B,440700
1291 001046 134140 000002 TYPE1: ILDB C,B
1292 001047 322140 000771 JUMPE C,CPOPJ
1293 001050 260740 000361 PUSHJ P,TYO
1294 001051 254000 760552 JRST TYPE1
1295
1296 001052 261740 000003 TYO: PUSH P,C
1297 001053 306140 000033 CAIN C,33
1298 001054 201140 000044 MOVEI C,"$"
1299 IFN KACODE,<
1300 SKPKA
1301 SKIPE KASIM
1302 CAIA
1303 >;IFN KACODE
1304 001055 254000 000000 JRST KLTYO
1305 IFN KACODE,<
1306 CONSZ TTY,20
1307 JRST .-1
1308 DATAO TTY,C
1309 POP P,C
1310 POPJ P,
1311 >;IFN KACODE
1312
1313 001056 350017 000000 CPOPJ1: AOS (P)
1314 001057 263740 000000 CPOPJ: POPJ P,
1315
1316
1317 001060 202140 756451 DTEXX: MOVEM C,KLEPT+DTCMD
1318 001061 402000 756444 SETZM KLEPT+DTFLG ;CLEAR 11'S RESPONSE FLAG
1319 001062 720200 020000 CONO DTE0,DONG11 ;RING FOR 11
1320 001063 336000 756444 SKIPN KLEPT+DTFLG ;WAIT FOR RESPONSE
1321 001064 254000 760567 JRST .-1
1322 001065 200140 756450 MOVE C,KLEPT+DTF11 ;GET 11'S RESPONSE WORD
1323 001066 263740 000000 POPJ P,
1324
1325 001067 405140 000177 KLTYO: ANDI C,177
1326 001070 260740 760564 PUSHJ P,DTEXX
1327 001071 262740 000003 POP P,C
1328 001072 263740 000000 POPJ P,
1329
1330 IFN DSKDSW,<
1331
1332 001073 201140 003400 KLTYI: MOVEI C,3400
1333 001074 260740 760564 PUSHJ P,DTEXX
1334 001075 322140 760577 JUMPE C,KLTYI
1335 001076 254000 000000 JRST KLTYI1
1336
1337 TYI:
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 12-2
DSKDMP
1338 IFN KACODE,<
1339 SKPKA
1340 SKIPE KASIM
1341 CAIA
1342 >;IFN KACODE
1343 001077 254000 760577 JRST KLTYI
1344 IFN KACODE,<
1345 CONSO TTY,40
1346 JRST .-1
1347 DATAI TTY,C
1348 >;IFN KACODE
1349 001100 405140 000177 KLTYI1: ANDI C,177 ;FLUSH PARITY BIT
1350 001101 301140 000141 CAIL C,"a"
1351 001102 303140 000172 CAILE C,"z"
1352 001103 304000 000000 CAIA
1353 001104 275140 000040 SUBI C,40
1354 001105 302140 000176 CAIE C,176
1355 001106 306140 000175 CAIN C,175
1356 001107 201140 000033 MOVEI C,33
1357 001110 306140 000012 CAIN C,12
1358 001111 201140 000015 MOVEI C,15
1359 001112 306140 000025 CAIN C,"U"-100
1360 001113 254000 000000 JRST TYICAN
1361 001114 602000 000001 TRNE F,RBO ;SKIP UNLESS RUBBING OUT
1362 001115 263740 000000 POPJ P, ;DON'T ECHO HERE IF RUBBING OUT
1363 001116 261740 000003 PUSH P,C
1364 001117 260740 760556 PUSHJ P,TYO
1365 001120 302140 000015 CAIE C,15
1366 001121 254000 000000 JRST POPCJ
1367 001122 201140 000012 MOVEI C,12
1368 001123 260740 760556 PUSHJ P,TYO
1369 001124 262740 000003 POPCJ: POP P,C
1370 001125 263740 000000 POPJ P,
1371
1372 001126 201140 000136 TYICAN: MOVEI C,"↑"
1373 001127 260740 760556 PUSHJ P,TYO
1374 001130 201140 000125 MOVEI C,"U"
1375 001131 260740 760556 PUSHJ P,TYO
1376 001132 201140 000025 MOVEI C,"U"-100
1377 001133 620000 000001 TRZ F,RBO
1378 001134 263740 000000 POPJ P,
1379
1380 FILTYP:
1381 IFN RHDSK,<
1382 001135 200200 000704 MOVE D,FDEV
1383 001136 260740 000000 PUSHJ P,TYPSIX
1384 001137 201140 000072 MOVEI C,":"
1385 001140 260740 760556 PUSHJ P,TYO
1386 >;IFN RHDSK
1387 001141 200200 000706 MOVE D,FNAM
1388 001142 260740 001136 PUSHJ P,TYPSIX
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 12-3
DSKDMP
1389 001143 201140 000056 MOVEI C,"."
1390 001144 336200 000712 SKIPN D,FEXT
1391 001145 254000 000664 JRST PPNTYP
1392 001146 260740 760556 PUSHJ P,TYO
1393 001147 260740 001142 PUSHJ P,TYPSIX
1394 001150 201140 000133 PPNTYP: MOVEI C,"["
1395 001151 260740 760556 PUSHJ P,TYO
1396 001152 510200 000724 HLLZ D,FPPN
1397 001153 260740 001147 PUSHJ P,TYPSIX
1398 001154 201140 000054 MOVEI C,","
1399 001155 260740 760556 PUSHJ P,TYO
1400 001156 514200 001152 HRLZ D,FPPN
1401 001157 260740 001153 PUSHJ P,TYPSIX
1402 001160 201140 000135 MOVEI C,"]"
1403 001161 254000 760556 JRST TYO
1404
1405 001162 201140 000000 TYPSIX: MOVEI C,0
1406 001163 246140 000006 LSHC C,6
1407 001164 322140 000000 JUMPE C,TYPSI1
1408 001165 271140 000040 ADDI C,40
1409 001166 260740 760556 PUSHJ P,TYO
1410 001167 326200 760666 TYPSI1: JUMPN D,TYPSIX
1411 001170 263740 000000 POPJ P,
1412
1413 TWAIT:
1414 IFN KACODE,<
1415 SKPKA
1416 SKIPE KASIM
1417 CAIA
1418 POPJ P,
1419 CONSZ TTY,20
1420 JRST TWAIT
1421 >;IFN KACODE
1422 001171 263740 000000 POPJ P,
1423
1424 001172 231100 000010 OCTTYP: IDIVI B,10
1425 001173 322100 000000 JUMPE B,OCTTY1
1426 001174 506157 000000 HRLM C,(P)
1427 001175 260740 760676 PUSHJ P,OCTTYP
1428 001176 554157 000000 HLRZ C,(P)
1429 001177 271140 000060 OCTTY1: ADDI C,"0"
1430 001200 254000 760556 JRST TYO
1431 >;IFN DSKDSW
1432
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 13
DSKDMP
1433 ;⊗ C1ZERO C1APT C1BPT C1PH C1ZEND C1FRST C1ERR C1PTP C1PPTP C1CIFI ZZZ C1MRTC C
1CCHR C1MRTD C1WCHN RCLTAB XBUF LPDL LPDL PDL ERRCNT RECORD NXTTRK SYMPNT SYSLOC PATCH PATCH1 LODCNT LODNXT XFR
CNT STARTA KASIM MUCKFL ZERFLG FHILOC UPPRST TIBFLN TIBUF FNAM FEXT FPPN DEFDEV DEFEXT DEFPPN FDEV
1434
1435 ;DISK ADDRESSES AND POINTERS
1436
1437 IFE RHDSK,<
1438 C1ZERO:: ;ZERO FROM HERE TO C1ZEND AT DISKUP
1439 C1APT: BLOCK C1PPTR+1+1 ;CHN CTL WD, INT WD, PGM PTR, END MARK
1440 C1BPT: BLOCK C1PPTR+1+1 ;PROGRAM TABLE FOR SECOND CHANNEL
1441 C1PH: BLOCK C1INST ;PROGRAM HEADER
1442 0 ;JUMP TO PROGRAM
1443
1444 C1ZEND::
1445
1446 C1FRST: -1 ;-1 FIRST TIME THROUGH
1447 C1ERR: 0 ;ERROR COUNT
1448
1449 C1PTP: C1APT ;POINTERS TO PRG TABLES INDEXED BY CHANNEL NUMB
ER
1450 C1BPT
1451
1452 C1PPTP: C1APT+C1PPTR
1453 C1BPT+C1PPTR
1454
1455 C1CIFI: CONO C1A,C1SCH!C1CCIF ;INST TO CLEAR CIF INDEXED BY CHANNEL N
UMBER
1456 CONO C1B,C1SCH!C1CCIF
1457
1458 ;WCMAS FOR CONTROL COMMANDS
1459 DEFINE C1WCMA (COUNT,ADDR,REC)<
1460 ZZZ←←0
1461 IFIDN <REC><R><ZZZ←←1>
1462 BYTE (1)1 (1)ZZZ (13)COUNT (22)ADDR
1463 >
1464
1465 C1MRTC: C1MRT!C1NATM!6,,0 ;MRT READ COMMAND
1466 C1CCHR: BYTE (8)0,0,0,0 ;C C H R
1467 BYTE (8)0,DATRPB+1-1,0,0 ;SECTOR, LAST REC, WRAP REC, 0
1468 C1JMP,,C1MRTD ;JUMP TO 1ST DATA POINTER
1469 C1MRTD: BLOCK DATRPB+1
1470 0
1471
1472 'C1WCHN' ;FOR AIDING LOCATING OF THIS TABLE IN CORE FROM DDT
1473 ;TABLE OF WHICH DRIVE IS ON WHICH CHANNEL, 0 FOR C1A, 1 FOR C1B
1474 C1WCHN:
1475 IFN FT1DSK,<
1476 1
1477 1
1478 1
1479 1
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 13-2
DSKDMP
1480 1
1481 1
1482 1
1483 1
1484 >;IFN FT1DSK
1485 IFE FT1DSK,<
1486 0
1487 1
1488 0
1489 1
1490 0
1491 1
1492 0
1493 1
1494 >;IFE FT1DSK
1495 IFN .-C1WCHN-NPACKS,<.FATAL GUESS WHAT YOU FORGOT TO CHANGE>
1496
1497
1498 RCLTAB: RTLSIZ,,RTLSIZ
1499 REPEAT DATRPB,<
1500 200,,200
1501 >
1502 >;IFE RHDSK
1503
1504 IFN DSKDSW,<
1505 003400 XBUF: BLOCK BLKSIZ
1506 >;IFN DSKDSW
1507
1508 000000 000020 LPDL←←20
1509
1510 IFE KLBOOT,<
1511 003420 PDL: BLOCK LPDL
1512
1513 003421 000000 000000 ERRCNT: 0
1514 003422 000000 000000 RECORD: 0
1515 003423 000000 000000 NXTTRK: 0 ;BYTE POINTER TO DPTR
1516
1517 003424 000000 000000 SYMPNT: 0 ;SYMBOL TABLE POINTER FROM DSKDMP.DMP
1518
1519 IFN DSKDBG,<
1520 003425 000000 000000 SYSLOC: 0 ;DISK ADDRESS OF SSSYS.UFD[1,1]
1521 >;IFN DSKDBG
1522 IFN DSKDSW,<
1523 003465 PATCH: BLOCK 40
1524 003525 PATCH1: BLOCK 40
1525 >;IFN DSKDSW
1526
1527 003526 000000 000000 LODCNT: 0 ;NUMBER OF WORDS IN FILE LEFT TO LOAD
1528 003527 000000 000000 LODNXT: 0 ;NEXT ADDRESS TO LOAD INTO
1529 003530 000000 000000 XFRCNT: 0 ;NUMBER OF WORDS THIS TRANSFER
1530 003531 000000 000000 STARTA: 0 ;DSKDMP'S STARTING ADDRESS
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 13-3
DSKDMP
1531 003532 000000 000000 KASIM: 0 ;-1 IF KA SIMULATION UCODE IS RUNNING
1532 >;IFE KLBOOT
1533
1534 IFN DSKDSW,<
1535 003533 000000 000000 MUCKFL: 0 ;-1 IF MUCKING AROUND WITH LOW CORE CELLS
1536 003534 000000 000000 ZERFLG: 0 ;-1 TO ZERO CORE FIRST
1537 003535 000000 000000 FHILOC: 0 ;HILOC OF FILE WE ARE LOADING
1538 003536 000000 000000 UPPRST: 0 ;CORE ADDRESS OF START OF UPPER
1539
1540 000000 000020 TIBFLN←←20
1541 003556 TIBUF: BLOCK TIBFLN
1542 003557 000000 000000 FNAM: 0
1543 003560 000000 000000 FEXT: 0
1544 003561 000000 000000 0
1545 003562 000000 000000 FPPN: 0
1546 IFN RHDSK,<
1547 003563 626353 000000 DEFDEV: SIXBIT /RSK/ ;default structure (DSKDMP)
1548 >;IFN RHDSK
1549 003564 445560 000000 DEFEXT: SIXBIT /DMP/ ;DEFAULT EXTENSION
1550 003565 000063 637163 DEFPPN: SIXBIT / SSYS/ ;DEFAULT PPN
1551 >;IFN DSKDSW
1552
1553 IFN RHDSK,<
1554 003566 626353 000000 FDEV: SIXBIT /RSK/ ;default (and only) structure for BOOT, stru for DSKDMP
1555 >;IFN RHDSK
1556
1557 IFN KLBOOT,<
1558 DATAWD(PDL,LPDL)
1559 DATAWD(ERRCNT,1)
1560 DATAWD(RECORD,1)
1561 DATAWD(NXTTRK,1) ;BYTE POINTER TO DPTR
1562 DATAWD(SYMPNT,1) ;SYMBOL TABLE POINTER FROM DSKDMP.DMP
1563
1564 DATAWD(LODCNT,1) ;NUMBER OF WORDS IN FILE LEFT TO LOAD
1565 DATAWD(LODNXT,1) ;NEXT ADDRESS TO LOAD INTO
1566 DATAWD(XFRCNT,1) ;NUMBER OF WORDS THIS TRANSFER
1567 DATAWD(STARTA,1) ;DSKDMP'S STARTING ADDRESS
1568 DATAWD(KASIM,1) ;-1 IF KA SIMULATION UCODE IS RUNNING
1569 >;IFN KLBOOT
1570
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 14
DSKDMP
1571 ;⊗ FDZBEG DIORG ICCW RH2CYL MAXUNI DSKTYP NUMCYL NUMSCL NUMSTK STRNAM RMXDRV DS
KTAB FDZEND NDSKOP NDSKLZ RMXDRV PAGSIZ HOMNAM HOMSNM HOMLUN HOMHOM HOMRXB HOMSIZ HOMFSN HOMCOD HOMSLF CODHOM I
CA ENTFLG MAXCHN MAXDRV RH0 .RHRAE .RHMBR .RHCTE .RHMBE .RHSTP .RHDON RHERR LR R4%CSR R4%CRC R4%RIP R4%CPA R4%C
RD R4%DSR .RPERR .RPMOL .RPDRY R4%ATN R4%DST R4%DTR R4%TYP R4%DC .RHSBR .RHSTR RCLP STLW R4%TYP .R4TYP .R5TYP .
R6TYP .R7TY2 .R7TY1 .R3TYP RHERR NRETRY TIMOUT R4%CRC R4%CDC R4%RIP R4%CPA R4%CRD N.SCL3 N.SCL4 N.SCL7 N.CLP3 N
.CLP4 N.CLP6 N.CLP7 N.CLP6 N.CLP7 N.STK3 N.STK7 N.STK4 N.BKPG
1572
1573 IFN RHDSK,<
1574
1575 260740 000000 OPDEF CALL [PUSHJ P,]
1576 263740 000000 OPDEF RET [POPJ P,]
1577
1578 ;General assumptions
1579 ; Register use:
1580 ; P1 Holds the physical channel number 0 ≤ channel < MAXCHN (8)
1581 ; P2 Holds the physical unit number 0 ≤ unit < MAXDRV (8)
1582 ;(>> matching brackets)
1583
1584 IFE KLBOOT,<
1585 ;Data storage
1586 000000 763273 FDZBEG←←. ;start of area initialized to zero by FDSK
1587 003567 000000 000000 DIORG: 0 ;Set up by FDSK with the location of the MFD, from HOMXRB
1588 003570 000000 000000 ICCW: 0 ;Set to a Channel Command Word for transfer
1589 003571 000000 000000 0 ;halt CCW
1590 003572 000000 000000 RH2CYL: 0 ;desired cylinder
1591 003573 000000 000000 MAXUNI: 0 ;Maximum unit number of the structure that was found.
1592 ;(This is one less than the number of units in structure.)
1593 003574 000000 000000 DSKTYP: 0 ;Initially zero, the Drive Type of the units in this str.
1594 003575 000000 000000 NUMCYL: 0 ;Number of cylinders/unit for this drive type
1595 003576 000000 000000 NUMSCL: 0 ;Number of sectors/cylinder for this drive type
1596 003577 000000 000000 NUMSTK: 0 ;Number of sectors/track for this drive type
1597 003600 000000 000000 STRNAM: 0 ;Name of structure represented by DIORG and DSKTAB
1598
1599 000000 000020 RMXDRV←←20 ;max number of drives we're prepared to handle
1600 003620 DSKTAB: BLOCK RMXDRV ;Table we set up with one word per drive, indexed
1601 ;by logical drive number. Each word will contain:
1602 ; 400000!<physical channel>,,<physical unit>
1603 000000 763324 FDZEND←←.-1 ;end of area initialized to zero by FDSK
1604
1605 003621 000000 000000 NDSKOP: 0 ;counts all diskops, successful or not
1606 003622 000000 000000 NDSKLZ: 0 ;counts losing diskops
1607 >;IFE KLBOOT
1608 IFN KLBOOT,<
1609 ;Data storage
1610 ;FDZBEG←←. ;start of area initialized to zero by FDSK
1611 DATAWD(DIORG,1) ;Set up by FDSK with the location of the MFD, from HOMXRB
1612 DATAWD(ICCW,2) ;Set to a Channel Command Word for transfer, 2nd word is halt
1613 DATAWD(RH2CYL,1);desired cylinder
1614 DATAWD(MAXUNI,1);Maximum unit number of the structure that was found.
1615 ;(This is one less than the number of units in structure.)
1616 DATAWD(DSKTYP,1);Initially zero, the Drive Type of the units in this str.
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 14-2
DSKDMP
1617 DATAWD(NUMCYL,1);Number of cylinders/unit for this drive type
1618 DATAWD(NUMSCL,1);Number of sectors/cylinder for this drive type
1619 DATAWD(NUMSTK,1);Number of sectors/track for this drive type
1620 DATAWD(STRNAM,1);Name of structure represented by DIORG and DSKTAB
1621
1622 RMXDRV←←20 ;max number of drives we're prepared to handle
1623 DATAWD(DSKTAB,RMXDRV) ;Table we set up with one word per drive, indexed
1624 ;by logical drive number. Each word will contain:
1625 ; 400000!<physical channel>,,<physical unit>
1626 ;FDZEND←←.-1 ;end of area initialized to zero by FDSK
1627
1628 DATAWD(NDSKOP,1);counts all diskops, successful or not
1629 DATAWD(NDSKLZ,1);counts losing diskops
1630 >;IFN KLBOOT
1631
1632 000000 001000 PAGSIZ←←1000 ;words per page
1633
1634 ;A%FP0 is defined as the page after KLEPT and is a
1635 ;one page data buffer. Home block is read into
1636 ;second record of this page. The following
1637 ;definitions of home block words are used:
1638
1639 ;HOME BLOCK DEFINITIONS
1640
1641 000000 757200 HOMNAM←←A%FP0+200+0 ;SIXBIT /HOM/
1642 000000 757203 HOMSNM←A%FP0+200+3 ;SIXBIT /STRUCTURE NAME/
1643 000000 757204 HOMLUN←A%FP0+200+4 ;XWD TOTAL PACKS, LOGICAL PACK #
1644 000000 757205 HOMHOM←A%FP0+200+5 ;BLOCK # OF OTHER HOME BLK,, BLK # OF THIS HB
1645 000000 757210 HOMRXB←A%FP0+200+10 ;ADR OF INDEX BLOCK OF ROOT DIRECTORY (MFD on WAITS)
1646 000000 757213 HOMSIZ←A%FP0+200+13 ;SIZE OF A UNIT IN SECTORS (records)
1647
1648 000000 757373 HOMFSN←A%FP0+200+173 ;FILE SYSTEM TYPE
1649 000000 757376 HOMCOD←A%FP0+200+176 ;0 ,, CODHOM
1650 000000 757377 HOMSLF←A%FP0+200+177 ;THIS HOME BLOCK #
1651
1652 000000 707070 CODHOM←←707070 ;the special code to mark home blocks
1653
1654 ;Constants
1655 000000 000000 ICA←←0 ;Offset from EPT origin to channel 0's Logout area
1656 000000 400000 ENTFLG←←400000 ;Flag in left half of DSKTAB table used to
1657 ;distinguish channel 0 unit 0 from a missing entry
1658 000000 000010 MAXCHN←←8 ;maximum number of channels
1659 000000 000010 MAXDRV←←8 ;maximum number of drives per channel
1660
1661 ;Device Definitions
1662 ; RH20
1663 000000 000540 RH0←←540 ;device number
1664 ; RH20 CONO/CONI
1665 000000 004000 .RHRAE←←1B24 ;Clear RAE (In CONI, Register Access Er
r)
1666 000000 002000 .RHMBR←←1B25 ;Clear RH20 & attached Devices
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 14-3
DSKDMP
1667 000000 001000 .RHCTE←←1B26 ;Clear transfer error
1668 000000 000400 .RHMBE←←1B27 ;Enable Massbus Transmitters (also CONI
)
1669 000000 000020 .RHSTP←←1B31 ;Stop a hung transfer
1670 000000 000010 .RHDON←←1B32 ;Clear Done (In CONI, Transfer Done)
1671 000000 775120 RHERR←←775120 ;All the RH20 error bits (in CONI)
1672 ;Data Bus Parity; Drive Exception
1673 ;Long WC; Whort WC; Channel Error
1674 ;Drive Response Error; RAE; Overrun
1675 ;and Either Command Buffer Full
1676 ; RH20 DATAO/DATAI
1677 004000 000000 LR←←1B6 ;Load Register Bit
1678
1679 ; RP06 Registers
1680 000000 000000 R4%CSR←←0B5 ;Drive Command Register
1681 ; RP06 Drive Commands
1682 000000 000007 R4%CRC←←07 ;Recalibrate
1683 000000 000021 R4%RIP←←21 ;Read-in Preset
1684 000000 000023 R4%CPA←←23 ;Pack Acknowledge
1685 000000 000071 R4%CRD←←71 ;Read Data
1686 010000 000000 R4%DSR←←1B5 ;Drive Status Register
1687 000000 040000 .RPERR←←1B21 ;Composite error
1688 000000 010000 .RPMOL←←1B23 ;Medium On-Line
1689 000000 000200 .RPDRY←←1B28 ;Drive Ready
1690 040000 000000 R4%ATN←←4B5 ;Attention Summary Register
1691 050000 000000 R4%DST←←5B5 ;Drive Sector & Track
1692 060000 000000 R4%DTR←←6B5 ;Drive Type Register
1693 000000 000777 R4%TYP←←777 ;Mask for drive type bits only
1694 120000 000000 R4%DC←←12B5 ;Cylinder Register
1695 700000 000000 .RHSBR←←70B5 ;RH20 Secondary Block Address Reg
1696 710000 000000 .RHSTR←←71B5 ;RH20 Secondary Transfer Control Reg
1697 002000 000000 RCLP←←1B7 ;Reset Command List Pointer
1698 000200 000000 STLW←←1B10 ;Store Ending Status
1699
1700 000000 000777 R4%TYP←←777B35 ;DEVICE TYPE FIELD IN TYPE REGISTER
1701 000000 000020 .R4TYP←←20 ;RP04 DEVICE TYPE CODE
1702 000000 000021 .R5TYP←←21 ;RP05 DEVICE TYPE CODE
1703 000000 000022 .R6TYP←←22 ;RP06 DEVICE TYPE CODE
1704 000000 000041 .R7TY2←←41 ;RP07 DEVICE TYPE CODE (moving head?)
1705 000000 000042 .R7TY1←←42 ;RP07 DEVICE TYPE CODE (fixed head?) (our kind)
1706 000000 000024 .R3TYP←←24 ;RM03 DEVICE TYPE CODE
1707 000000 775120 RHERR←←775120 ;RH10 CONI ERROR BITS
1708 000000 000005 NRETRY←←5 ;NUMBER OF TIMES TO RETRY
1709 000000 141520 TIMOUT←←=50000 ;COUNT FOR SOJG TIMEOUT
1710
1711 repeat 0,<
1712 ;R4%CSK←←02B34 ;RP04 SEEK FUNCTION
1713 R4%CRC←←03B34 ;RE-CALIBRATE FUNCTION IN CONTROL REGISTER
1714 R4%CDC←←04B34 ;RP04 DRIVE CLEAR FUNCTION
1715 R4%RIP←←10B34 ;READ-IN PRESET FUNCTION
1716 R4%CPA←←11B34 ;PACK ACKNOWLEDGE FUNCTION IN CONTROL REGISTER
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 14-4
DSKDMP
1717 ;R4%CWR←←30B34 ;RP04 WRITE FUNCTION
1718 R4%CRD←←34B34 ;RP04 READ FUNCTION
1719 >;repeat 0
1720
1721 000000 000224 N.SCL3←←=148 ;SECTORS PER CYL (RM03)
1722 ;IFE BOOT06,<
1723 ;N.SCL4←←=380 ;SECTORS PER CYL (RP04/RP05/RP06)
1724 ;>;IFE BOOT06
1725 000000 000524 N.SCL4←←=340 ;used SECTORS PER CYL, for RP07 BOOT usage
1726 000000 002540 N.SCL7←←=1376 ;SECTORS PER CYL RP07
1727 000000 001464 N.CLP3←←=820 ;CYLS PER UNI (RM03)
1728 000000 000620 N.CLP4←←=400 ;CYLS PER UNI (RP04/5)
1729
1730 repeat 0,<
1731 N.CLP6←←=800 ;CYLS PER UNI (RP06)
1732 N.CLP7←←=629 ;CYLS PER UNI (RP07)
1733 >;repeat 0
1734
1735 000000 001457 N.CLP6←←=815 ;CYLS PER UNI (RP06)
1736 000000 001166 N.CLP7←←=630 ;CYLS PER UNI (RP07)
1737
1738 000000 000036 N.STK3←←=30 ;SECTORS PER TRACK (RM03)
1739 000000 000053 N.STK7←←=43 ;SECTORS PER TRACK (RP07)
1740 ;IFE BOOT06,<
1741 ;N.STK4←←=20 ;SECTORS PER TRACK (RP04) (and 05/06?)
1742 ;>;IFE BOOT06
1743 000000 000022 N.STK4←←=18 ;used SECTORS PER TRACK, for RP07 BOOT usage
1744
1745 000000 000004 N.BKPG←←4 ;number of records per page
1746
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 15
DSKDMP
1747 ;⊗ BLAST FDSK FDSK1 FDSK2 FDSK2A FDSK3 FDSK4 CHKSTR MISSTR MISUN2 MISUNI
1748
1749 ;Routine to locate the physical units for a given structure (FDEV).
1750 ;Sets up DSKTAB and DIORG if successful.
1751 ;Types error msg if appropriate.
1752
1753 BLAST::
1754 FDSK:
1755 IFE KLBOOT,<
1756 003623 403240 763273 SETZB P1,FDZBEG ;Channel 0 to P1, set up for BLT
763273 763274
1757 003624 200440 000000 MOVE T1,[FDZBEG,,FDZBEG+1] ;Prepare to clear data area
1758 003625 251440 763324 BLT T1,FDZEND ;Initialize data area to zero
1759 >;IFE KLBOOT
1760 003626 476000 763277 SETOM MAXUNI ;No highest unit in structure
1761 ;; MAP T1,A%FP0 ;Convert addr of FP0 to physical
1762 ;; TLZ T1,777760 ;Keep the 22 physical addr bits
1763 003627 201440 757000 MOVEI T1,A%FP0 ;set up physical address of buffer (mapping is
off)
1764 003630 661440 620000 TLO T1,(<1B0+1B1+<1000B13>>) ;CCW: Data, Halt, Word Count = 1 page
1765 003631 202440 763274 MOVEM T1,ICCW ;Store first data CCW
1766 ;Examine the channel whose number is in P1
1767 003632 201440 002000 FDSK1: MOVEI T1,.RHMBR ;RH20 Reset function
1768 003633 260740 000000 CALL RHCONO ;Reset the RH20
1769 003634 201440 000400 MOVEI T1,.RHMBE ;RH20 Enable function
1770 003635 260740 003633 CALL RHCONO ;Enable Massbus transmitters
1771 003636 260740 000000 CALL RHCONI ;Now read RH CONI, result to T1
1772 003637 606440 000400 TRNN T1,.RHMBE ;Did the enable bit come back?
1773 003640 254000 000000 JRST FDSK4 ;No. No bit means no channel.
1774 ;This channel exists.
1775 ;; MAP T1,ICCW ;Get physical address of ICCW
1776 ;; TLZ T1,777760 ;Keep 22 phys addr bits
1777 003641 201440 763274 MOVEI T1,ICCW ;set up physical address of CCW list (map is of
f)
1778 003642 661440 200000 TLO T1,(<1B1>) ;Make a JUMP CCW
1779 003643 200500 000005 MOVE T2,P1 ;Get the current channel number
1780 003644 242500 000002 LSH T2,2 ;Shift it to Channel*4
1781 003645 202452 756000 MOVEM T1,KLEPT+ICA(T2) ;Store initial CCW for channel
1782 ;Scan to see what physical units are present.
1783 003646 201300 000000 MOVEI P2,0 ;Start at unit 0
1784 ;Start on a Unit. Unit number in P2
1785 003647 205440 060000 FDSK2: MOVSI T1,(<R4%DTR>) ;Read the Drive Type register
1786 003650 260740 000000 CALL RHREAD ;Read it
1787 003651 200500 000011 MOVE T2,T1 ;Copy Drive Type to T2
1788 003652 260740 003636 CALL RHCONI ;Check for Register Access Error
1789 003653 606440 004000 TRNN T1,.RHRAE ;Test CONI bits for RAE
1790 003654 254000 000000 JRST FDSK2A ;All is well: a drive responded
1791 003655 201440 004400 MOVEI T1,.RHRAE!.RHMBE ;Must clear RAE. Set ENABLE.
1792 003656 260740 003635 CALL RHCONO ;CONO to clear RAE & set ENABLE
1793 003657 254000 000000 JRST FDSK3 ;Drive doesn't exist. Try next.
1794
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 15-2
DSKDMP
1795 ;A unit is present. See what kind of drive it is. GOTDRV does the real work.
1796 003660 260740 000000 FDSK2A: CALL GOTDRV ;See what we have here
1797 003661 305300 000007 FDSK3: CAIGE P2,MAXDRV-1 ;Done with all units yet?
1798 003662 344300 763353 AOJA P2,FDSK2 ;No, go do next unit now.
1799 003663 305240 000007 FDSK4: CAIGE P1,MAXCHN-1 ;Checked all channels yet?
1800 003664 344240 763336 AOJA P1,FDSK1 ;No, advance to next channel
1801 ;Now see if we found a consistent structure.
1802 003665 335440 763277 SKIPGE T1,MAXUNI ;Now, check for full structure
1803 003666 254000 000000 JRST MISSTR ;Structure not found
1804 003667 336011 763305 CHKSTR: SKIPN DSKTAB(T1) ;Any physical addr for this LUN?
1805 003670 254000 000000 JRST MISUNI ;Bad structure: missing unit
1806 003671 365440 763373 SOJGE T1,CHKSTR ;Loop thru all units
1807 003672 200500 763300 MOVE T2,DSKTYP ;Get the type of this disk
000022 000524
1808 003673 200440 000000 MOVE T1,[N.STK4,,N.SCL4] ;Get sec/trk,,sectors/cylinders for 04, 05, 06
1809 003674 306500 000024 CAIN T2,.R3TYP ;RP03?
000036 000224
1810 003675 200440 000000 MOVE T1,[N.STK3,,N.SCL3] ;Yes
1811 003676 306500 000042 CAIN T2,.R7TY1 ;RP07?
000053 002540
1812 003677 200440 000000 MOVE T1,[N.STK7,,N.SCL7] ;Yes
1813 003700 552440 763302 HRRZM T1,NUMSCL ;Save sec/cyl
1814 003701 556440 763303 HLRZM T1,NUMSTK ;Save sec/trk
1815 003702 263740 000000 RET ;all done with FDSK
1816
1817 MISSTR:
1818 IFE KLBOOT,<
423136 364744
627104 071750
713534 372352
713124 067336
721014 667752
673105 620100
000000 000000
1819 003703 201100 000000 MOVEI B,[ASCIZ/Desired structure not found. /]
1820 >;IFE KLBOOT
1821 IFN KLBOOT,<
1822 MOVEI B,[ASCIZ/Struct? /]
1823 >;IFN KLBOOT
1824 MISUN2:
1825 IFN DSKDSW,<
1826 003704 260740 760551 PUSHJ P,TYPE ;type error msg
1827 003705 336200 763272 SKIPN D,FDEV
001541 567115
1828 003706 200200 000000 MOVE D,['-ANY-'] ;indicate blank structure name, which matches a
ny
1829 003707 254000 760666 JRST TYPSIX ;type device name
1830 >;IFN DSKDSW
1831 IFE DSKDSW,<
1832 JRST TYPE ;type error msg and return
1833 >;IFE DSKDSW
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 15-3
DSKDMP
1834
1835 MISUNI:
1836 IFE KLBOOT,<
517516 272706
723536 262500
643036 320352
673236 424346
245015 564746
717235 663534
201000 000000
1837 003710 201100 000000 MOVEI B,[ASCIZ/Structure has unit(s) missing. /]
1838 >;IFE KLBOOT
1839 IFN KLBOOT,<
1840 MOVEI B,[ASCIZ/Units? /]
1841 >;IFN KLBOOT
1842 003711 402000 763273 SETZM DIORG ;don't let us try to use this structure
1843 003712 254000 763410 JRST MISUN2 ;type error msg and return
1844
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 16
DSKDMP
1845 ;⊗ GOTDRV GOTDV3 GOTDV4 GOTDV0 GOTDV2
1846
1847 SUBTTL GOTDRV Examine the Drive and HHome Block to see if we want it
1848
1849 ;Initially DSKTYP is zero. When we find the first disk, we set DSKTYP to the
1850 ;negative of the drive type number. If we like the home blocks, we set
1851 ;DSKTYP to positive and thereafter, we look at only physical units that are
1852 ;similar.
1853 003713 405500 000777 GOTDRV: ANDI T2,R4%TYP ;Keep only the device type code
1854 003714 306500 000021 CAIN T2,.R5TYP ;Is this an RP05?
1855 003715 201500 000020 MOVEI T2,.R4TYP ;Yes, make it look like an RP04
1856 IFE KLBOOT,< ;squeeze into KLDCP
1857 003716 306500 000041 CAIN T2,.R7TY2 ;Alternate kind of RP07?
1858 003717 201500 000042 MOVEI T2,.R7TY1 ;Make it the usual kind of RP07
1859 >;IFE KLBOOT
1860 003720 337440 763300 SKIPG T1,DSKTYP ;Are we looking for a specific disk?
1861 003721 254000 000000 JRST GOTDV3 ;Not yet, check if this is allowable
1862 003722 316500 000011 CAMN T2,T1 ;Yes. Is this the same as we want?
1863 003723 254000 000000 JRST GOTDV0 ;Same as we want. Read its home block.
1864 003724 263740 000000 RET ;No. Don't use this one.
1865
1866 ;The desired Drive Type has not been selected yet. Check type against all know
n
1867 ;disk types:
1868
1869 003725 302500 000042 GOTDV3: CAIE T2,.R7TY1 ;RP07?
1870 003726 306500 000024 CAIN T2,.R3TYP ;or RM03?
1871 003727 254000 000000 JRST GOTDV4 ;Yes
1872 003730 302500 000022 CAIE T2,.R6TYP ;RP06
1873 003731 306500 000020 CAIN T2,.R4TYP ;or RP04?
1874 003732 254000 003727 JRST GOTDV4 ;Yes. Save type (negated)
1875 003733 263740 000000 RET ;This is no kind of disk for us
1876
1877 003734 212500 763300 GOTDV4: MOVNM T2,DSKTYP ;Save negative drive type till home blocks chec
ked
004000 000023
1878 003735 200440 000000 GOTDV0: MOVE T1,[R4%CSR!LR!R4%CPA] ;Send Pack Acknowledge.
1879 003736 260740 000000 CALL RHWRIT ;Do DATAO. Sets Volume Valid
1880 003737 205440 010000 MOVSI T1,(<R4%DSR>) ;Read device status register
1881 003740 260740 003650 CALL RHREAD ;Via DATAO/DATAI
1882 003741 606440 010000 TRNN T1,.RPMOL ;Is Disk Pack On-Line?
1883 003742 263740 000000 RET ;No. Forget it.
1884 003743 402000 757000 SETZM A%FP0 ;Clear data page
757000 757001
1885 003744 200440 000000 MOVE T1,[A%FP0,,A%FP0+1] ;Set up for the BLT
1886 003745 251440 757777 BLT T1,A%FP0+PAGSIZ-1 ;Zero data page before the Read
1887 003746 260740 000000 CALL RD0 ;Read disk page 0 (records 0,1,2,3)
1888 003747 260740 000000 CALL CHKHOM ;Check the home block
1889 003750 254000 000000 JRST GOTDV2 ;Bad. Try the Backup home block
1890 003751 263740 000000 RET ;Good block, but wrong Structure
1891 003752 217000 763300 MOVMS DSKTYP ;Good block, right structure, set DSKTYP positi
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 16-2
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
ve
1892 003753 263740 000000 RET
1893
1894 ;Primary Home Block was bad. Try reading the Backup home block.
1895 ;CHKHOM expects to see the home block in record 1 (words 200:377) of the page.
1896 ;So we position the backup home block in record 1 of the page, by starting
1897 ;the transfer at record 11. Then record 12 will wind up at words 200:377
1898 003754 260740 000000 GOTDV2: CALL RD11 ;Read records 11,12,13,14
1899 003755 260740 003747 CALL CHKHOM ;Check the backup home block
1900 003756 263740 000000 RET ;Error
1901 003757 263740 000000 RET ;Wrong structure
1902 003760 217000 763300 MOVMS DSKTYP ;OK, set DSKTYP positive.
1903 003761 263740 000000 RET
1904
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 17
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
1905 ;⊗ RHREAD RHWRIT RHCONI RHCONO XIO1 RDDISK RD11 RD0 RD00 RD0A DOOP1 TYPGOO DOOP
2 TYPFOO
1906
1907 ;RH20 Register Read and Write, CONO and CONI. Call with P1 = RH #
1908
1909 ;An RH20 register is read by DATAO'ing the specified register number to the RH
1910 ;and then DATAI'ing the RH. An RH20 register is written by DATAO'ing the
1911 ;specified register number, the LR (load register) bit, and the remainder of
1912 ;the data to the RH. After writing the register, a DATAI is performed to
1913 ;read the new contents.
1914
1915 003762 621440 004000 RHREAD: TLZ T1,(<LR>) ;Clear LR bit
1916 003763 671440 000006 RHWRIT: TSO T1,P2 ;Insert Drive Number in left half
1917 003764 260740 000000 CALL XIO1 ;Set IO Device Field & do DATAO
1918 003765 700140 000011 DATAO .-.,T1 ;Send register select & data to device
1919 003766 260740 003764 CALL XIO1 ;Set IO Device Field & do DATAI
1920 003767 700040 000011 DATAI .-.,T1 ;Read selected register
1921 003770 263740 000000 RET
1922
1923 003771 260740 003766 RHCONI: CALL XIO1 ;Set IO device and do CONI
1924 003772 700240 000011 CONI .-.,T1 ;Read device status
1925 003773 263740 000000 RET
1926
1927 003774 260740 003771 RHCONO: CALL XIO1 ;Set IO device and do CONO
1928 003775 700211 000000 CONO .-.,(T1) ;Set device conditions
1929 003776 263740 000000 RET
1930
1931 ;XIO1 Subroutine
1932 ; Call with P1 = channel number
1933 ; next instruction should be: IOOP 0,Address
1934 ;
1935 ; Effect of routine is to execute the specified I/O instruction as
1936 ; though its device code field were set for the given channel number.
1937
1938 003777 261777 000000 XIO1: PUSH P,@(P) ;Fetch argument, to top of stack
1939 004000 350017 777777 AOS -1(P) ;Skip once to skip over the argument
1940 004001 261740 000013 PUSH P,T3 ;Save AC T3
1941 004002 201545 000130 MOVEI T3,<RH0/4>(P1) ;Produce I/O device code
320717 777777
1942 004003 137540 000000 DPB T3,[POINT 7,-1(P),9] ;Store IO Device Number in instruction
1943 004004 262740 000013 POP P,T3 ;Restore AC
1944 004005 256017 000000 XCT (P) ;Execute the target instruction
1945 004006 304000 000000 CAIA ;Target didn't skip
1946 004007 350017 777777 AOS -1(P) ;Target skipped. Pass the Skip upwards.
1947 004010 105740 777777 ADJSP P,-1 ;Discard the stacked instruction
1948 004011 263740 000000 RET
1949
1950 ;RD0: Routine to read page 0 (Records 0,1*,2,3) *=home block
1951 ;RD11: Routine to read back home block (Records 11,12*,13,14)
1952 ;
1953 ; Accepts in P1/ Channel number
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 17-2
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
1954 ; P2/ Unit number
1955 ; ICCW/ Channel command word (memory address and length of xfer in wor
ds)
1956 ; CALL RD0
1957 ;
1958 ;RDDISK: above args plus:
1959 ; T1/ Cylinder number
1960 ; P4/ Position word
1961
1962 ;Enter here with cylinder number in T1
1963 004012 202440 763276 RDDISK: MOVEM T1,RH2CYL ;save cylinder number till we need it
1964 004013 201540 000005 MOVEI T3,NRETRY ;Initialize Retry counter
1965 004014 254000 000000 JRST RD0A ;Join RD0 but avoid recalibrate
1966
704000 000011
1967 004015 334400 000000 RD11: SKIPA P4,[.RHSBR!LR!0B27!11B35] ;Desired Sector and track
704000 000000
1968 004016 200400 000000 RD0: MOVE P4,[.RHSBR!LR!0B27!0B35] ;For RH20 SBAR
1969 004017 402000 763276 SETZM RH2CYL ;select cylinder 0
1970 004020 201540 000005 MOVEI T3,NRETRY ;Initialize Retry counter
1971 ;This is where we come to retry losing disk ops, starting with a recalibrate.
004000 000007
1972 004021 200440 000000 RD00: MOVE T1,[R4%CSR!LR!R4%CRC] ;Recalibrate function
1973 004022 260740 763467 CALL RHWRIT ;Execute Recalibrate
1974 004023 205440 010000 RD0A: MOVSI T1,(<R4%DSR>) ;Select unit status register
1975 004024 260740 763466 CALL RHREAD ;Get drive status
1976 004025 606440 000200 TRNN T1,.RPDRY ;Is drive ready?
1977 004026 254000 763527 JRST RD0A ;No, wait till recalibrate done
004000 000021
1978 004027 200440 000000 MOVE T1,[R4%CSR!LR!R4%RIP] ;Read-in Preset Function
1979 004030 260740 763467 CALL RHWRIT ;Execute read-in preset
1980 004031 402000 763275 SETZM ICCW+1 ;End command list with a HALT
716200 000071
1981 004032 200340 000000 MOVE P3,[.RHSTR!LR!RCLP!STLW!R4%CRD] ;Write a disk READ cmd into the ST
CR
261300 763274
1982 004033 135440 000000 LDB T1,[POINT 11,ICCW,13] ;get word count from CCW
1983 004034 271440 000177 ADDI T1,RECSIZ-1 ;round up to whole sectors
1984 004035 242440 777771 LSH T1,-R2WLSH ;shift count to make it a sector count
1985 004036 210440 000011 MOVN T1,T1 ;negative sector count
061200 000007
1986 004037 137440 000000 DPB T1,[POINT 10,P3,29] ;put negative sector count in disk READ cmd
1987
1988 ;Do a data transfer operation with disk
1989 ; Accepts in P3/ DATAO Data ;Data Xfer command for STCR
1990 ; P1/ Channel number
1991 ; P2/ Unit number
1992 ; P4/ Position select word ;For the SBAR
1993 ; RH2CYL/ Desired cylinder
1994
1995 004040 550440 763276 HRRZ T1,RH2CYL ;get desired cylinder number
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 17-3
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
1996 004041 661440 124000 TLO T1,(LR!R4%DC) ;set up DATAO word to select cylinder
1997 004042 260740 763467 CALL RHWRIT ;Write DC, selecting desired cylinder
1998 004043 200440 000010 MOVE T1,P4 ;Get Block Address Word
1999 004044 260740 763467 CALL RHWRIT ;Write it to SBAR
2000 004045 200440 000007 MOVE T1,P3 ;Get the TCR word
2001 004046 260740 763467 CALL RHWRIT ;Write STCR. Start Xfer.
2002 004047 201500 141520 MOVEI T2,TIMOUT ;Get timeout count
2003 004050 260740 763475 DOOP1: CALL RHCONI ;Get RH status
2004 004051 606440 000010 TRNN T1,.RHDON ;RH done? Is operation done?
2005 004052 367500 763554 SOJG T2,DOOP1 ;No. Loop till done or timeout
2006 004053 200340 000011 MOVE P3,T1 ;Copy final CONI (unused??)
2007 004054 201440 005410 MOVEI T1,.RHRAE!.RHCTE!.RHMBE!.RHDON ;Clear Done and errors
2008 004055 260740 763500 CALL RHCONO ;Via CONO to RH
2009 004056 323500 000000 JUMPLE T2,DOOP2 ;Did operation ever finish?
2010 004057 205440 010000 MOVSI T1,(<R4%DSR>) ;Yes. Read disk status
2011 004060 260740 763466 CALL RHREAD ;Get device status
2012 004061 602440 040000 TRNE T1,.RPERR ;Check composite error flag
2013 004062 254000 004056 JRST DOOP2 ;Some drive-detected error
2014 004063 260740 763475 CALL RHCONI ;Get RH status bits
2015 IFE KLBOOT,< ;squeeze into KLDCP
2016 004064 350000 763325 AOS NDSKOP ;count disk ops, successful or not
2017 >;IFE KLBOOT
2018 IFE TYPXFR,<
2019 004065 606440 775120 TRNN T1,RHERR ;Any errors there?
2020 004066 263740 000000 RET ;No errors. Return.
2021 >;IFE TYPXFR
2022 IFN TYPXFR,<
2023 TRNE T1,RHERR ;Any errors there?
2024 JRST DOOP2 ;Yes, try again
2025 MOVEI C,"+" ;indicate successful disk op
2026 MOVE T3,NDSKOP ;get disk op count
2027 SUB T3,NDSKLZ ;only count winners, discount losers
2028 TYPGOO: TRNN T3,000000 ;patch this to limit dot typeout to every 2↑Nth
op
2029 PUSHJ P,TYO ;type char for each successful disk op
2030 RET ;No errors. Return.
2031
2032 >;IFN TYPXFR
2033 004067 201440 003420 DOOP2: MOVEI T1,.RHMBR!.RHMBE!.RHCTE!.RHSTP ;Here if errors. Setup CONO:
2034 004070 260740 763500 CALL RHCONO ;Massbus Reset and Enable bits
2035 004071 201440 000400 MOVEI T1,.RHMBE ;Get Massbus Enable
2036 004072 260740 763500 CALL RHCONO ;Enable Channel
044000 000377
2037 004073 200440 000000 MOVE T1,[R4%ATN!LR!377] ;Select Attention Register
2038 004074 260740 763467 CALL RHWRIT ;Clear Attention in all drives
2039 IFE KLBOOT,< ;squeeze into KLDCP
2040 004075 350440 763326 AOS T1,NDSKLZ ;count losing disk ops
2041 >;IFE KLBOOT
2042 IFN TYPXFR,<
2043 MOVEI C,"-" ;indicate losing disk op
2044 TYPFOO: TRNN T1,000000 ;patch this to limit typeout to every 2↑Nth err
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 17-4
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
or
2045 PUSHJ P,TYO ;type char for each losing disk op
2046 >;IFN TYPXFR
2047 004076 367540 763525 SOJG T3,RD00 ;Repeat failing operation
2048 004077 263740 000000 RET ;Catch errors elsewhere
2049
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 18
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
2050 ;⊗ CHKHOM CHKHO2 BADUNI DPLUNI BADSTR BADUN2
2051
2052 ;Check for correct home blocks
2053 ; no skip: bad home block
2054 ; one skip: wrong structure
2055 ; two skips: OK
2056
2057 004100 204440 757200 CHKHOM: MOVS T1,HOMNAM ;Get block name
2058 004101 302440 505755 CAIE T1,'HOM' ;Does it say SIXBIT/HOM/ ?
2059 004102 263740 000000 RET ;Bad.
2060 004103 200440 757376 MOVE T1,HOMCOD ;Get block type code
2061 004104 302440 707070 CAIE T1,CODHOM ;Check it (707070)
2062 004105 263740 000000 RET ;Bad home block
2063 004106 200440 757373 MOVE T1,HOMFSN ;Get file system type, chars 1-4
020040 040527
2064 004107 312440 000000 CAME T1,[BYTE (2)0(8)" "," "(2)0(8)"A","W"]
2065 004110 263740 000000 RET ;Not a WAITS pack
2066 004111 200440 757374 MOVE T1,HOMFSN+1 ;Get characters 5-8 of type
2067 004112 200500 757375 MOVE T2,HOMFSN+2 ;Get characters 9-12 of type
052111 020123
2068 004113 316440 000000 CAMN T1,[BYTE (2)0(8)"T","I"(2)0(8)" ","S"]
020040 020040
2069 004114 312500 000000 CAME T2,[BYTE (2)0(8)" "," "(2)0(8)" "," "]
2070 004115 263740 000000 RET ;Not a WAITS pack
2071 004116 350017 000000 AOS (P) ;At least one skip now.
2072 004117 200440 757203 MOVE T1,HOMSNM ;Get Structure name
2073 004120 336500 763272 SKIPN T2,FDEV ;skip if specific structure requested
2074 004121 326440 000000 JUMPN T1,CHKHO2 ;take any structure with Non-Blank name!
2075 004122 312440 000012 CAME T1,T2 ;Does it match what we want?
2076 004123 263740 000000 RET ;Wrong Structure (one skip)
2077 004124 336000 763304 CHKHO2: SKIPN STRNAM ;Have we identified structure yet?
2078 004125 202440 763304 MOVEM T1,STRNAM ;No, save name of structure found
2079 004126 312440 763304 CAME T1,STRNAM ;Part of same structure already seen?
2080 004127 263740 000000 RET ;No, wrong Structure
2081 004130 550440 757204 HRRZ T1,HOMLUN ;Get logical unit number
2082 004131 301440 000020 CAIL T1,RMXDRV ;Make sure it's in range
2083 004132 254000 000000 JRST BADUNI ;Out of range!
2084 004133 332011 763305 SKIPE DSKTAB(T1) ;Is this unit number defined?
2085 004134 254000 000000 JRST DPLUNI ;Yes. Bad: Duplicate units
2086 004135 552311 763305 HRRZM P2,DSKTAB(T1) ;Store Physical Unit number
2087 004136 201505 400000 MOVEI T2,ENTFLG(P1) ;Phys Channel + entry-used flag
2088 004137 506511 763305 HRLM T2,DSKTAB(T1) ;Store phys channel + flag
2089 004140 554440 757204 HLRZ T1,HOMLUN ;Get number of units in str
2090 004141 370000 000011 SOS T1 ;Convert to maximum unit #
2091 004142 335000 763277 SKIPGE MAXUNI ;Is MAXUNI already set?
2092 004143 202440 763277 MOVEM T1,MAXUNI ;No: set it now.
2093 004144 312440 763277 CAME T1,MAXUNI ;Is this unit the same as others?
2094 004145 254000 000000 JRST BADSTR
2095 004146 200500 757210 MOVE T2,HOMRXB ;Get MFD address
2096 004147 336000 763273 SKIPN DIORG ;Is MFD addr already set?
2097 004150 202500 763273 MOVEM T2,DIORG ;No. Set it.
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 18-2
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
2098 004151 312500 763273 CAME T2,DIORG ;Must be same as any previous
2099 004152 254000 004145 JRST BADSTR ;But it isn't. Bad: home blocks are inconsiste
nt
2100 004153 254000 760562 JRST CPOPJ1 ;Another skip. A good pack
2101
2102 IFE KLBOOT,<
527355 172100
673535 561312
711015 772750
203374 620344
607354 762534
000000 000000
2103 004154 201100 000000 BADUNI: MOVEI B,[ASCIZ/Unit number out of range./]
2104 004155 254000 000000 JRST BADUN2
2105
423234 663312
713135 672100
623455 173312
715014 366302
647324 071702
667124 066336
637234 360730
203535 664750
203356 566704
627445 600000
2106 004156 201100 000000 DPLUNI: MOVEI B,[ASCIZ/Different drives claim same logical unit number./]
2107 004157 254000 004155 JRST BADUN2
2108
447354 367734
717236 372312
673504 064336
667124 061330
677075 371500
677344 062322
633154 571312
673504 062344
647554 571534
000000 000000
2109 004160 201100 000000 BADSTR: MOVEI B,[ASCIZ/Inconsistent home blocks on different drives./]
2110 >;IFE KLBOOT
2111 IFN KLBOOT,<
2112 BADUNI:
2113 DPLUNI:
2114 BADSTR: MOVEI B,[ASCIZ/CHKHOM? /]
2115 >;IFN KLBOOT
2116 004161 260740 760551 BADUN2: PUSHJ P,TYPE
2117 004162 254200 763666 JRST 4,.
2118
2119 >;IFN RHDSK
2120
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 19
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
2121 ;⊗ FF
2122
2123 ;XLIST ;LIT and VAR listing suppressed here
004163 430000 000001
004164 440600 000002
004165 440700 763243
004166 444400 760725
004167 704000 000000
004170 704000 000000
004171 704000 000011
004172 716200 000071
004173 756000 756001
004174 757000 757001
004175 763243 763244
004176 763273 763274
004177 775600 760705
004200 776000 761105
004201 777400 760705
004202 777600 760705
004203 777760 763104
004204 000017 000017
004205 000022 000524
004206 000036 000224
004207 000040 000041
004210 000044 637163
004211 000053 002540
004212 000063 637163
004213 001541 567115
004214 002600 763274
004215 004000 000007
004216 004000 000021
004217 004000 000023
004220 004400 761104
004221 010700 763242
004222 020040 020040
004223 020040 040527
004224 044000 000377
004225 052111 020123
004226 061200 000007
004227 064245 200000
004230 070000 000000
004231 222115 763305
004232 261300 763274
004233 320717 777777
004234 350700 763243
004235 064250 451626
004236 422332 000000
004237 201007 737576
004240 000000 000000
004241 202311 740610
004242 426100 000000
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 19-2
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
004243 472364 051650
004244 406452 444634
004245 435010 142210
004246 512132 351400
004247 472364 051652
004250 416204 040644
004251 426024 026500
004252 000000 000000
004253 472364 051652
004254 416204 043222
004255 462124 026500
004256 000000 000000
004257 202052 552100
004260 472364 051650
004261 406452 444634
004262 435010 142210
004263 512132 351400
004264 527355 172100
004265 673535 561312
004266 711015 772750
004267 203374 620344
004270 607354 762534
004271 000000 000000
004272 422531 550100
004273 416371 546602
004274 472104 047236
004275 521011 146640
004276 462131 542634
004277 522130 420262
004300 426500 000000
004301 423136 364744
004302 627104 071750
004303 713534 372352
004304 713124 067336
004305 721014 667752
004306 673105 620100
004307 000000 000000
004310 432231 442646
004311 202071 746632
004312 406350 420234
004313 476504 044632
004314 502310 546612
004315 472510 542100
004316 546132 400000
004317 456231 446100
004320 416371 546602
004321 472104 047236
004322 521011 146640
004323 462131 542634
004324 522130 420262
004325 426500 000000
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 19-3
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
004326 517516 272706
004327 723536 262500
004330 643036 320352
004331 673236 424346
004332 245015 564746
004333 717235 663534
004334 201000 000000
004335 423234 663312
004336 713135 672100
004337 623455 173312
004340 715014 366302
004341 647324 071702
004342 667124 066336
004343 637234 360730
004344 203535 664750
004345 203356 566704
004346 627445 600000
004347 447354 367734
004350 717236 372312
004351 673504 064336
004352 667124 061330
004353 677075 371500
004354 677344 062322
004355 633154 571312
004356 673504 062344
004357 647554 571534
004360 000000 000000
004361 261740 000003
004362 201140 000134
004363 260740 760556
004364 262740 000003
004365 260740 760556
004366 302140 000015
004367 254000 760047
004370 201140 000012
004371 260740 760556
004372 201140 000015
2124 004373 254000 760047 LIT
2125 VAR
2126 LIST ;resume listing
2127 000000 764100 FF←←.
2128
2129 IFE DEBSW,<
2130 IFN DSKDSW,<
2131 IFN CSAVE,<
2132 ;Specify the starting address in the CSAVE file. This word occurs
2133 ;after the first (and only) IOWD has just run out. This is where
2134 ;the next IOWD would be.
2135 004374 254000 760000 JRST DSKDMP ;in place of IOWD, specifies the starting address
2136 >;IFN CSAVE
2137 >;IFN DSKDSW
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 19-4
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
2138 >;IFE DEBSW
2139
2140
2141 ;; Nota bene: Code beyond here (FF) won't be loaded during booting.
2142
2143
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 20
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
2144 ;⊗ CSVNAM CSVLEN CS MKCSAV NODSK NOENT NOOUT
2145
2146 ;; Nota bene: Code here and beyond won't be loaded during booting.
2147
2148 ;; This code runs from REENTER monitor command to generate a
2149 ;; bootable CSAVE file to be put on front end file system.
2150
2151 ;; This code is basically run only once, on a WAITS job.
2152
2153 IFE DEBSW,<
2154 IFN DSKDSW,<
2155 IFN RHDSK,<
2156 IFN CSAVE,<
2157
2158 DEPHASE ;undo the PHASE statement -- this code run on a WAITS job
2159
2160 004375 446353 445560 CSVNAM: 'DSKDMP'
2161 004376 436366 000000 'CSV '
2162 004377 000000 000000 0
2163 004400 000000 000000 0 ;write it on user's alias directory
2164
2165 000000 004100 CSVLEN←FF-LOWEST ;number of words of program to be booted by 11
2166
2167 000000 000001 CS←←1 ;I/O channel for writing out CSAVE file.
2168
2169 ;Write out a CSAVE file (DSKDMP.CSV) which can be put on the front-end 11's
2170 ;file system for booting directly from the 11, without use of DECtapes.
2171 ;The file is written on the user's current (alias) directory.
2172 ;Any previous file is overwritten without checking (since the CSAVE file is
2173 ;only actively used on the front end file system, not from WAITS file system).
004375 000001
2174 004401 200200 000000 MKCSAV: MOVE D,[CSVNAM,,A]
2175 004402 251200 000004 BLT D,D ;set up enter block for CSAVE file
2176 004403 041040 000017 INIT CS,17 ;dump mode
2177 004404 446353 000000 'DSK '
2178 004405 000000 000000 0
2179 004406 254000 000000 JRST NODSK
2180 004407 077040 000001 ENTER CS,A ;Write the CSAVE file
2181 004410 254000 000000 JRST NOENT
773676 000272
000000 000000
2182 004411 057040 000000 OUT CS,[IOWD CSVLEN+2,CSVFIL ↔ 0] ;the 2 extra words written are:
2183 004412 304000 000000 CAIA ; IOWD at CSVFIL and JRST DSKDMP at
FF
2184 004413 254000 000000 JRST NOOUT
2185 004414 071040 000000 RELEAS CS,
2186 004415 047000 000012 EXIT
2187
417035 623750
202231 644650
203515 062500
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 20-2
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
2188 422471 327032 NODSK: OUTSTR [ASCIZ/Can't INIT the DSK.
050000 000000
2189 004416 051140 000000 /]
2190 004417 254200 004417 HALT .
2191
426352 442644
2192 203154 164730 NOENT: OUTSTR [ASCIZ/ENTER failed.
627105 606424
000000 000000
2193 004420 051140 000000 /]
2194 004421 254200 004421 HALT .
2195
476532 420352
727364 063302
2196 647314 562134 NOOUT: OUTSTR [ASCIZ/OUT uuo failed.
064240 000000
2197 004422 051140 000000 /]
2198 004423 254200 004423 HALT .
2199
2200 >;IFN CSAVE
2201 >;IFN RHDSK
2202 >;IFN DSKDSW
2203 >;IFE DEBSW
2204
DSKDMP FAIL 23-MAR-88 15:49 DSKDMP.FAI Page 21
DSKDMP GOTDRV Examine the Drive and HHome Block to see if we want it
2205 ; END ;⊗
2206
2207 IFN DSKDSW,<
2208 IFE DEBSW,<
DSKDMP 1
2209 000000 760000 END DSKDMP
2210 ABSOLUTE BREAK 004444
2211
DSKDMP PROGRAM
DSKDMP 2209
A 116# 701 702 755 780 783 788 791 792 793
794 797 798 799 802 804 833 835 887 888
897 898 902 910 915 940 941 950 951 953
962 963 967 968 970 971 972 977 995 996
997 998 999 1000 1001 1041 1069 1106 2174 2180
A%FP0 230# 1641 1642 1643 1644 1645 1646 1648 1649 1650
1763 1884 1885 1886
APR 156# 685 691 696 706
B 117# 733 734 735 737 750 754 803 804 805
806 810 813 814 834 839 840 843 849 857
862 878 903 930 932 939 945 946 947 948
949 1007 1011 1015 1019 1023 1032 1033 1035 1036
1037 1038 1046 1050 1054 1059 1064 1067 1068 1086
1087 1089 1097 1107 1290 1291 1424 1425 1819 1837
2103 2106 2109
BADSTR 2094 2099 2109#
BADUN2 2104 2107 2116#
BADUNI 2083 2103#
BLAST 726 1753#
BLKSIZ 249# 1133 1505
C 118# 757 758 760 763 764 766 768 770 772
774 776 778 780 785 788 790 791 835 836
837 840 920 924 925 926 927 928 929 931
932 933 934 935 936 937 938 943 946 982
983 1068 1082 1083 1105 1107 1291 1292 1296 1297
1298 1317 1322 1325 1327 1332 1334 1349 1350 1351
1353 1354 1355 1356 1357 1358 1359 1363 1365 1367
1369 1372 1374 1376 1384 1389 1394 1398 1402 1405
1406 1407 1408 1426 1428 1429
CCA 159# 695 705
CHKHO2 2074 2077#
CHKHOM 1888 1899 2057#
CHKSTR 1804# 1806
CMDDSP 814 825#
CMDS 804 816# 823
CODHOM 1652# 2061
CPOPJ 999 1080 1086 1112 1292 1314#
CPOPJ1 978 1109 1313# 2100
CS 2167# 2176 2180 2182 2185
CSAVE 53# 76 92 92# 210 218 2131 2156
CSVFIL 220# 2182
CSVLEN 220 2165# 2182
CSVNAM 2160# 2174
D 119# 1044 1051 1055 1060 1069 1070 1071 1073 1074
1077 1080 1081 1083 1382 1387 1390 1396 1400 1410
1827 1828 2174 2175
DATRPB 245# 248 951 954
DATSIZ 248# 249 988 989 1104
DDEXT 488#
DDLNG 492# 930 945 1099
DDLOC 491#
DDMPTM 494#
DDNAM 487#
DDPPN 490#
DDPRO 489#
DEBSW 45# 76 92 92# 185 207 337 2129 2153 2208
DEFDEV 1032 1547#
DEFEXT 1037 1549#
DEFPPN 735 898 1035 1550#
DGRP1R 495#
DIORG 889 891 1587# 1842 2096 2097 2098
DNXTGP 496# 965 1003 1124
DOFFST 500#
DONG11 181# 1319
DOOP1 2003# 2005
DOOP2 2009 2013 2033#
DPLUNI 2085 2106#
DPTEBP 509# 963 1001 1116
DPTR 501# 508
DPTRBP 508# 967 982 1101 1125
DQINFO 498#
DREFTM 493#
DSATID 497#
DSKAL1 804# 805
DSKDAL 777 797#
DSKDBG 55# 76 92 92# 1519
DSKDGO 775 813#
DSKDL 750# 779 784 808 844 851 856 864 877 880
1009 1013 1017
DSKDL1 759# 781 793 795
DSKDL2 755# 806
DSKDM0 694 698#
DSKDM1 726#
DSKDM2 734#
DSKDMP 683# 2135 2209
DSKDRO 761 783#
DSKDSW 49# 76 92 92# 97 104 108 146 208 255
531 681 1330 1504 1522 1534 1825 1831 2130 2154
2207
DSKTAB 1149 1150 1600# 1804 2084 2086 2088
DSKTYP 1593# 1807 1860 1877 1891 1902
DSTART 209# 215 220 223 229 230
DTCMD 170# 1317
DTE0 165# 1319
DTEXX 1317# 1326 1333
DTF11 169# 1322
DTFLG 168# 1318 1320
DUMP 827 1011#
ENTFLG 1656# 2087
ERRCNT 1513#
EXTNEW 50# 76 93 94 95 95#
F 115# 736 753 762 786 1361 1377
FDEV 887 1033 1046 1382 1554# 1827 2073
FDSK 890 1754#
FDSK1 1767# 1800
FDSK2 1785# 1798
FDSK2A 1790 1796#
FDSK3 1793 1797#
FDSK4 1773 1799#
FDZBEG 683 1586# 1756 1757
FDZEND 1603# 1758
FEXT 903 1038 1040 1054 1390 1543#
FF 216 2127# 2165
FHILOC 920 929 943 1537#
FILES 826 1007#
FILSE0 1045 1048#
FILSE1 1052 1055#
FILSET 883 1030#
FILSI1 1069# 1084
FILSIX 1042 1047 1053 1057 1062 1067#
FILTYP 1025 1380#
FNAM 884 902 1039 1050 1387 1542#
FNF 905 1023#
FPPN 897 1036 1059 1064 1396 1400 1545#
FT1DSK 57# 76 92 92#
GOTDRV 1796 1853#
GOTDV0 1863 1878#
GOTDV2 1889 1898#
GOTDV3 1861 1869#
GOTDV4 1871 1874 1877#
HILOC 142# 928
HOMCOD 1649# 2060
HOMFSN 1648# 2063 2066 2067
HOMHOM 1644#
HOMLUN 1643# 2081 2089
HOMNAM 1641# 2057
HOMRXB 1645# 2095
HOMSIZ 1146 1646#
HOMSLF 1650#
HOMSNM 1642# 2072
ICA 1655# 1781
ICCW 1138 1143 1588# 1765 1777 1980 1982
JOBSA 926
JOBSYM 924
KACODE 58# 172 176 687 709 728 740 973 1299 1305
1338 1344 1414
KASIM 727 1531#
KILL 1015#
KLBOOT 54# 76 92 92# 97# 98 228 343 1510 1557
1584 1608 1755 1818 1821 1836 1839 1856 2015 2039
2102 2111
KLEPT 229# 700 701 702 704 915 1317 1318 1320 1322
1781
KLPAG 158# 693 704
KLTYI 1332# 1334 1343
KLTYI1 1335 1349#
KLTYO 1304 1325#
LDIT0 908 917#
LDIT0A 923 930#
LDIT1 931 939#
LDIT2 944 960 970#
LDIT3 952 962#
LDIT4 964 969#
LDLP 942 982# 1005
LDLP1 969 984# 1002
LDLP3 959 988#
LOAD 825 874#
LOADGO 813 853#
LOADIT 855 876 883#
LOADN 868 872 876#
LODCNT 939 947 956 957 984 998 1527#
LODNXT 941 949 993 996 1528#
LOWEST 217 682# 2165
LPDL 684 1508# 1511
LR 1159 1677# 1878 1915 1967 1968 1972 1978 1981 1996
2037
MAXCHN 702 1658# 1799
MAXDRV 1659# 1797
MAXUNI 1147 1591# 1760 1802 2091 2092 2093
MERGE 830 870#
MISSTR 1803 1817#
MISUN2 1824# 1843
MISUNI 1805 1835#
MKCSAV 212 2174#
MUCKFL 854 867 871 875 922 1535#
N 137# 891 901 906 958 965 985 986 987 1003
1118 1124 1144
N.BKPG 1745#
N.CLP3 1727#
N.CLP4 1728#
N.CLP6 1735#
N.CLP7 1736#
N.SCL3 1721# 1810
N.SCL4 1725# 1808
N.SCL7 1726# 1812
N.STK3 1738# 1810
N.STK4 1743# 1808
N.STK7 1739# 1812
NCMDS 803 823#
NDSKLZ 1606# 2040
NDSKOP 1605# 2016
NODSK 2179 2188#
NOENT 2181 2192#
NOMUCK 831 866#
NOOUT 2184 2196#
NPACKS 60#
NRETRY 1708# 1964 1970
NSA 900 1019#
NUFDWD 144# 1111 1113
NUMCYL 1594#
NUMSCL 1152 1595# 1813
NUMSTK 1155 1596# 1814
NXTQQQ 480# 487 487# 488 488# 489 489# 490 490# 491
491# 492 492# 493 493# 494 494# 495 495# 496
496# 497 497# 498 498# 499 499# 500 500# 501
501#
NXTTRK 958 962 968 983 987 1000 1103 1115 1118 1127
1515#
OCTTY1 1425 1429#
OCTTYP 1424# 1427
P 140# 684 726 739 752 759 763 765 766 767
771 787 789 807 846 850 855 858 859 863
876 879 883 890 899 904 919 942 959 966
969 994 1004 1008 1012 1016 1020 1024 1042 1047
1053 1056 1057 1058 1061 1062 1063 1065 1072 1075
1078 1088 1098 1100 1119 1120 1121 1153 1160 1293
1296 1313 1314 1323 1326 1327 1328 1333 1362 1363
1364 1368 1369 1370 1373 1375 1378 1383 1385 1388
1392 1393 1395 1397 1399 1401 1409 1411 1422 1426
1427 1428 1575 1576 1826 1938 1939 1940 1942 1943
1944 1946 1947 2071 2116
P1 129# 1149 1756 1779 1799 1800 1941 2087
P2 130# 1150 1783 1797 1798 1916 2086
P3 131# 1981 1986 2000 2006
P4 132# 1156 1158 1159 1967 1968 1998
PAGSIZ 1632# 1886
PATCH 1523#
PATCH1 1524#
PDL 684 1511#
PI 157# 686
PIOFF 183#
POPCJ 1366 1369#
PPNTYP 1021 1391 1394#
QQQ 807 810# 885 892
R2WLSH 237# 238 1984
R4%ATN 1690# 2037
R4%CPA 1684# 1878
R4%CRC 1682# 1972
R4%CRD 1685# 1981
R4%CSR 1680# 1878 1972 1978
R4%DC 1694# 1996
R4%DSR 1686# 1880 1974 2010
R4%DST 1691#
R4%DTR 1692# 1785
R4%RIP 1683# 1978
R4%TYP 1693# 1700# 1853
RADJ 1058 1063 1086#
RADJ1 1087# 1090
RBO 148# 753 762 786 1361 1377
RCLP 1697# 1981
RD0 1887 1968#
RD00 1972# 2047
RD0A 1965 1974# 1977
RD11 1898 1967#
RDDISK 1161 1963#
RDRET 966 1004 1132#
READ 1098 1120 1133#
READ0 919 994 1135#
RECORD 918 950 986 1134 1145 1514#
RECSIZ 238# 248 1983
RH0 1663# 1941
RH2CYL 1590# 1963 1969 1995
RHCONI 1771 1788 1923# 2003 2014
RHCONO 1768 1770 1792 1927# 2008 2034 2036
RHDSK 56# 76 92 92# 128 151 161 227 233 239
243 378 416 470 503 507 699 886 894 911
914 1031 1043 1076 1136 1163 1381 1437 1546 1553
1573 2155
RHERR 1671# 1707# 2019
RHREAD 1786 1881 1915# 1975 2011
RHWRIT 1879 1916# 1973 1979 1997 1999 2001 2038
RMXDRV 1599# 1600 2082
RTLSIZ 244# 249 509 917 924 926 928 1104 1132
SRCH 899 1097#
SRCH1 904 1098#
SRCH2 1104# 1122
SRCH3 1105# 1114
SRCH4 1117 1124#
SRCH5 1119# 1128
SRCHLP 1108 1111#
SSTRT1 835# 841
SSTRT2 838 843#
SSTRTA 801 833#
START 829 846#
STARTA 843 847 848 860 861 921 927 1530#
STLW 1698# 1981
STRNAM 888 1597# 2077 2078 2079
SWEEPB 182# 691 696 706
SYMPNT 925 972 1517#
SYSLOC 1520#
T 138# 917 953 954 955 956 957 984 988 989
990 991 992 993 1099 1111 1112 1119 1121 1132
1133 1137 1139 1144 1145 1146 1147 1149 1150 1151
1152 1153 1154 1155 1157 1158
T1 133# 1160 1757 1758 1763 1764 1765 1767 1769 1772
1777 1778 1781 1785 1787 1789 1791 1802 1804 1806
1808 1810 1812 1813 1814 1860 1862 1878 1880 1882
1885 1886 1915 1916 1918 1920 1924 1928 1963 1972
1974 1976 1978 1982 1983 1984 1985 1986 1995 1996
1998 2000 2004 2006 2007 2010 2012 2019 2033 2035
2037 2040 2057 2058 2060 2061 2063 2064 2066 2068
2072 2074 2075 2078 2079 2081 2082 2084 2086 2088
2089 2090 2092 2093
T2 134# 1779 1780 1781 1787 1807 1809 1811 1853 1854
1855 1857 1858 1862 1869 1870 1872 1873 1877 2002
2005 2009 2067 2069 2073 2075 2087 2088 2095 2097
2098
T3 135# 1940 1941 1942 1943 1964 1970 2047
TIBFLN 758 1540# 1541
TIBUF 755 756 757 758 783 797 802 833 1041 1541#
TIMOUT 1709# 2002
TT 139# 901 906 1101 1102 1103 1104 1105 1106 1113
1114 1115 1116 1125 1126 1127 1137 1138 1139 1140
1141 1143 1151 1154 1156
TTY 160#
TWAIT 846 859 1413#
TYI 759 1337#
TYICAN 1360 1372#
TYO 765 767 771 787 789 1293 1296# 1364 1368 1373
1375 1385 1392 1395 1399 1403 1409 1430
TYPE 739 752 811 850 858 863 879 1008 1012 1016
1020 1024 1290# 1826 2116
TYPE1 1291# 1294
TYPSI1 1407 1410#
TYPSIX 1383 1388 1393 1397 1401 1405# 1410 1829
TYPXFR 44# 76 92 92# 2018 2022 2042
UPPRST 938 948 1538#
WDPCHN 246# 702
XBUF 917 924 926 928 930 945 963 965 967 982
1001 1003 1099 1101 1104 1116 1124 1125 1132 1133
1505#
XFRCNT 990 995 1529#
XIO1 1917 1919 1923 1927 1938#
ZERFLG 853 866 870 874 907 1536#
.R3TYP 1706# 1809 1870
.R4TYP 1701# 1855 1873
.R5TYP 1702# 1854
.R6TYP 1703# 1872
.R7TY1 1705# 1811 1858 1869
.R7TY2 1704# 1857
.RHCTE 1667# 2007 2033
.RHDON 1670# 2004 2007
.RHMBE 1668# 1769 1772 1791 2007 2033 2035
.RHMBR 1666# 1767 2033
.RHRAE 1665# 1789 1791 2007
.RHSBR 1159 1695# 1967 1968
.RHSTP 1669# 2033
.RHSTR 1696# 1981
.RPDRY 1689# 1976
.RPERR 1687# 2012
.RPMOL 1688# 1882
CALL 1575# 1768 1770 1771 1786 1788 1792 1796 1879 1881
1887 1888 1898 1899 1917 1919 1923 1927 1973 1975
1979 1997 1999 2001 2003 2008 2011 2014 2034 2036
2038
IFDIF 92
IFE 92 108 151 161 176 207 228 233 239 255
378 416 470 503 531 894 911 1163 1437 1510
1584 1755 1818 1831 1836 1856 2015 2018 2039 2102
2129 2153 2208
IFG 94
IFL 93
IFN 92 97 98 104 128 146 172 185 208 210
218 227 243 337 343 507 681 687 699 709
728 740 886 914 973 1031 1043 1076 1136 1299
1305 1330 1338 1344 1381 1414 1504 1519 1522 1534
1546 1553 1557 1573 1608 1821 1825 1839 2022 2042
2111 2130 2131 2154 2155 2156 2207
IOWD 220 2182
RET 1576# 1815 1864 1875 1883 1890 1892 1900 1901 1903
1921 1925 1929 1948 2020 2048 2059 2062 2065 2070
2076 2080
SWLIST 64# 72 87
VALPNT 66# 76
ZWD 482# 487 488 489 490 491 492 493 494 495
496 497 498 500 501